0

我有一个 2 分钟的Selenium webdriver脚本。它适用于FirefoxDriverChromeDriver。真正的浏览器永远不会失败。

但是当我使用HTMLUnit驱动程序运行时,我发现它随机失败。抛出异常,例如找不到元素。

我尝试过的解决方案:

  1. 将 Thread.sleep 添加到 6000 毫秒。但仍然不是每次都运行
  2. 添加等待但它在同一行抛出错误
  3. 将元素的定位器从 Id 更改为 xpath 或 CSS 路径。

配置和版本:

硒Java:2.53.0

硒服务器:2.53.0

htmlunit 驱动程序:2.21

测试NG:6.8.8

4

1 回答 1

1

添加显式等待WebDriver抛出无法找到元素异常的元素,如下所示 -

WebDriverWait wait = new WeBDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("")));

此外,请确保您已将以下依赖项添加到您的项目中 -

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<version>2.21</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.53.0</version>
</dependency>
于 2016-06-07T07:38:51.427 回答