在我的应用程序中,当我点击任何元素时,会显示等待图像。我可以创建一个explict等待等待该图像消失,但我必须在每次单击代码后写入。我想创建一个隐式等待。这样我每次都可以避免编写代码。
请帮忙。在此先感谢!!
答案 0 :(得分:2)
只需应用"Extract method"重构方法即可。创建一个单独的可重用函数/方法,除了单击元素外,还会等待等待图像的不可见性。
这是一个简单的例子(应该明确改进):
public void clickAndWait(WebDriver driver, By by) {
driver.findElement(by).click();
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("waiting_image")));
}
答案 1 :(得分:2)
隐式和显式等待之间存在显着差异。对于查找元素,显式等待始终是最佳选择。我建议编写一个自定义finElement()
方法,其中显式等待烘焙,这样您就不需要每次都编写显式等待。你不想在任何地方使用隐式等待,因为如果元素不在那里,它将在你的测试执行中给出性能问题。