selenium click不能替代java脚本执行器单击

时间:2016-11-01 05:50:35

标签: java selenium selenium-webdriver

我有.click()实施的selenium点击功能,其中包含webdriver waitsleep方法,也被Actions使用。它们都不稳定,换句话说,它们有时会起作用。我使用的是selenium-server-standalone-2.53.0.jar

我使用Javascript executor进行了一项工作,如下所示,大部分时间都有效。

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

任何人都可以建议一个更好的方法来替代这个或替代java脚本,因为我读了很多网站,不建议使用java脚本执行器。

如果没有更好的解释,我们为什么要去java脚本执行器而不是正常的click()。

提前致谢。

2 个答案:

答案 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();