我使用Cucumber-JVM with Serenity(报告库)。步骤实现使用selenium进行浏览器自动化。
我使用像
这样的方法waitForRenderedElementsToBePresent(By.cssSelector(<css>));
waitFor(ExpectedConditions.visibilityOf(getDriver().findElement(By.cssSelector(<css>))));
但有时我的测试仍然会出现瑕疵。我不想使用显式等待。
有什么方法可以让我的测试更可靠。?
答案 0 :(得分:2)
我在同样的问题上遇到了很多困难,我不喜欢使用ExpectedConditions也没有使用显式等待。最后我开始使用Awaitility框架。
它基本上允许你编写这样的代码:
await("Element did not show foo.").atMost(60,TimeUnit.SECONDS)
.until(() -> driver.findElement(By.id("some-element").getText().contains("foo"));
我发现它与Selenium WebDriver配合得很好,而且我认为它使你的代码更具可读性。