我有一个 Selenium 网络驱动程序的 2 分钟脚本。它与FirefoxDriver和ChromeDriver配合得很好。它永远不会在真正的浏览器中失败。
但是当我使用 HTMLUnit 驱动程序运行时,我发现它随机失败。抛出异常,例如找不到元素。
我尝试过的解决方案:
- 将 Thread.sleep 添加到 6000 毫秒。但仍然不是每次都运行
- 添加等待,但在同一行抛出错误
- 将元素的定位器从 Id 更改为 xpath 或 CSS 路径。
配置和版本:
硒爪哇 : 2.53.0
硒服务器 : 2.53.0
html单元驱动程序:2.21
测试NG : 6.8.8
添加显式等待 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>