【问题标题】:Got org.openqa.selenium.WebDriverException when i try to click on a button in my application当我尝试单击应用程序中的按钮时出现 org.openqa.selenium.WebDriverException
【发布时间】:2017-04-25 19:37:38
【问题描述】:

当我尝试单击应用程序中的按钮时出现 org.openqa.selenium.WebDriverException。操作正在单击按钮并停止执行并出现以下错误:

Select dropdown= new  Select(driver.findElement(By.xpath("html/body/section/div/div/div/div[5]/div/div/div[1]/ul/li[9]/span/select")));
        dropdown.selectByIndex(1);
        Thread.sleep(5000L);
        //driver.findElement(By.xpath("html/body/section/div/div/div/div[5]/div/div/div[2]/p[2]/button")).click();
        WebElement element= driver.findElement(By.xpath("html/body/section/div/div/div/div[5]/div/div/div[2]/p[2]/button"));

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

错误日志是:

线程“main”org.openqa.selenium.WebDriverException 中的异常:未知错误:元素 ... 在点 (337, 11) 处不可点击。其他元素会收到点击:... (会话信息:chrome=58.0.3029.81)

非常感谢任何建议。

【问题讨论】:

  • 首先,您需要使用逻辑 xpath,而不是绝对 xpath。你的具体步骤是什么?提供相关的 HTML DOM。
  • 我正在尝试在应用程序中添加多个条目。我在 for 循环中提到了整个操作来测试我的应用程序中的分页。在单击保存按钮一次迭代后,我收到此错误,关于 Xpath,我将更改它。
  • 您好,开发人员,通过将绝对 Xpath 更改为相对 xpath 已解决。谢谢老兄。
  • 不需要。谢谢。问题已解决。

标签: java selenium selenium-webdriver


【解决方案1】:

发生这种情况是因为在脚本执行期间该元素不可见,如果您向下滚动一点,该元素可能是可见的。

所以,简而言之,您需要诱导一个小脚本向下滚动。 在您的点击语句之前使用它。

JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");

如果这有帮助,或者有任何疑问,请告诉我。 干杯!!

【讨论】:

  • 未解决仍然是同样的问题。我可以点击按钮,但点击按钮后出现错误。
  • 您是否尝试使用element.click() 而不是使用JavaScript 点击?
  • 是的,我做到了,而且效果很好,但是经过一些迭代后,我又遇到了同样的问题。
猜你喜欢
  • 2018-02-15
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 2015-09-27
  • 2017-10-23
  • 1970-01-01
相关资源
最近更新 更多