我有.click()
实施的selenium点击功能,其中包含webdriver wait
,sleep
方法,也被Actions使用。它们都不稳定,换句话说,它们有时会起作用。我使用的是selenium-server-standalone-2.53.0.jar
我使用Javascript executor
进行了一项工作,如下所示,大部分时间都有效。
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);
任何人都可以建议一个更好的方法来替代这个或替代java脚本,因为我读了很多网站,不建议使用java脚本执行器。
如果没有更好的解释,我们为什么要去java脚本执行器而不是正常的click()。
提前致谢。
答案 0 :(得分:0)
//where driver is an instance of WebDriver that you have initialized and now displays the web page of interest
//and where elementToBeClicked is an instance of class By, e.g. By elementToBeClicked = By.id("myButton");
Wait<WebDriver> wait_element = new WebDriverWait(driver, 40);
WebElement aLinkOrButton = wait_element.until(ExpectedConditions.elementToBeClickable(elementToBeClicked));
aLinkOrButton.click();
答案 1 :(得分:0)
请原谅我,如果它不起作用.. :)
尝试使用“visibilityOfElementLocated”。
Wait<WebDriver> wait_element = new WebDriverWait(driver, 40);
WebElement aLinkOrButton = wait_element.until(ExpectedConditions.visibilityOfElementLocated(elementToBeClicked));
aLinkOrButton.click();