使用selenium webdriver进行自动化但无法单击元素

时间:2018-02-21 11:55:11

标签: java selenium

我使用selenium webdriver在我的网站上执行自动化。我可以登录网站,但无法对元素执行点击操作。 我的代码尝试是:

WebElement add = BrowserUtilities.driver.findElement(By.xpath("//button[@class = 'btn btn-primary btn-lg']"));
add.click();

我也尝试使用javascript执行程序,如下所示:

JavascriptExecutor js = (JavascriptExecutor) BrowserUtilities.driver;
js.executeScript("argument[0].click()", add);

现在我在控制台中遇到异常,如:

FAILED CONFIGURATION: @BeforeClass launchBrowserTest
org.openqa.selenium.WebDriverException: unknown error: argument is not defined

如果有任何其他解决方案,请建议我。

2 个答案:

答案 0 :(得分:0)

由于存在javascript和ajax调用,您可以尝试以下代码:

使用webdriver查找元素等待:

 WebDriverWait wait=new WebDriverWait(driver,50 );           
    WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//button[@type='Cancel']")));

然后使用Actions类进行perfrom点击操作:

Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perfrom();

答案 1 :(得分:0)

尝试使用它。

 WebDriverWait wait = new WebDriverWait(driver,9000);   
 WebElement button=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class = 'btn btn-primary btn-lg']")));
    button.click();