在我的应用程序中,当我点击任何元素时,显示等待的图像。我可以创建一个表达式等待等待该图像消失,但我必须在每次点击代码后编写它。我想创建一个隐含的等待。这样我就可以避免每次都写这些代码。自定义Selenium WebDriver隐式等待加载页面消失
请帮忙。提前致谢 !!
在我的应用程序中,当我点击任何元素时,显示等待的图像。我可以创建一个表达式等待等待该图像消失,但我必须在每次点击代码后编写它。我想创建一个隐含的等待。这样我就可以避免每次都写这些代码。自定义Selenium WebDriver隐式等待加载页面消失
请帮忙。提前致谢 !!
之间存在隐含和明确等待一个显著差异。寻找元素明确的等待总是最好的选择。我建议写一个自定义的finElement()
方法,其中有明确的等待烘烤,以便您不必每次都写明确的等待。你不希望在任何地方使用隐式等待,因为如果元素不在那里,它会给你的测试执行带来性能问题。
只需应用"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")));
}
请详细介绍一下“Extract method”重构方法。谢谢 –
@virendrachaudhary增加了一个简单的例子,希望至少给你一个出发点。 – alecxe
非常感谢你 –
你可以给我一个这样的自定义findElement()方法的例子吗?谢谢 –