0

我将 Cucumber-JVM 与 Serenity(报告库)一起使用。步骤实现使用 selenium 进行浏览器自动化。

我使用类似的方法

waitForRenderedElementsToBePresent(By.cssSelector(<css>));
waitFor(ExpectedConditions.visibilityOf(getDriver().findElement(By.cssSelector(<css>))));

但有时我的测试仍然会出现片状。我不想使用显式等待。

有什么方法可以让我的测试更可靠。?

4

1 回答 1

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 一起工作得非常好,而且我认为它使您的代码更具可读性。

于 2015-11-25T15:47:17.243 回答