gpt4 book ai didi

java - 单击选定的复选框

转载 作者:行者123 更新时间:2023-12-02 04:01:34 28 4
gpt4 key购买 nike

这是我的问题:我尝试单击网络驱动程序的复选框。首先,我尝试使用 xpath、cssSelector、类名等进行单击。我得到了带有 firebug 的路径,但编译器提示。它说没有这样的元素。所以我尝试以不同的方式解决问题,当我发送两次 Tab 键时,我的选择出现在复选框上。不使用 Enter 或空格键,如何点击它。(我尝试使用 Google Recaptcha 处理,所以如果我使用空格或 Enter 键,它会检测到我是机器。)这是我的java代码的一部分

Actions action = new Actions(driver);
action.sendKeys(Keys.TAB).build().perform();
Thread.sleep(1000);
action.sendKeys(Keys.TAB).build().perform();
Thread.sleep(1000);
System.out.println("Tabbed");
action.click().build().perform();//Try to click on checkbox but it clicks on somewhere space.

我正在等待你的帮助。谢谢

最佳答案

在执行“单击”之前,您需要将鼠标光标移动到元素位置。此外,如果您等到元素变得可见,它可能会有所帮助。

WebElement element = driver.findElement(By.cssSelector("..."));
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOf(element)); //wait until the element is visible

action.moveToElement(element).click().perform();

如果您绝对想避免通过 CSS/XPath 查找元素,则需要找出该元素的坐标。将以下脚本粘贴到 chrome/firefox 控制台中并按 Enter 键:

document.onclick = function(e)
{
x = e.pageX;
y = e.pageY + 75; // navigation bar offset, you may need to change this value
console.log("clicked at position (x, y) " + x + ", " + y);
};

现在您可以单击网站上的复选框,位置将打印在控制台中。获得的位置可以通过Robot类使用:

Robot robot = new Robot(); //java.awt.Robot
robot.mouseMove(x, y); // moves your cursor to the supplied absolute position on the screen
robot.mousePress(InputEvent.BUTTON1_MASK); //execute mouse click
robot.mouseRelease(InputEvent.BUTTON1_MASK); //java.awt.event.InputEvent

请注意,这实际上会将光标移动到绝对坐标。这意味着如果分辨率发生变化或者需要滚动到元素,就会出现问题。您还应该在获取坐标并使用 WebDriver (driver.manage().window().maximize()) 时最大化浏览器,否则坐标将不匹配。

关于java - 单击选定的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34838264/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com