2015-06-26 83 views
1

在我的应用程序中,当我点击任何元素时,显示等待的图像。我可以创建一个表达式等待等待该图像消失,但我必须在每次点击代码后编写它。我想创建一个隐含的等待。这样我就可以避免每次都写这些代码。自定义Selenium WebDriver隐式等待加载页面消失

请帮忙。提前致谢 !!

回答

2

之间存在隐含明确等待一个显著差异。寻找元素明确的等待总是最好的选择。我建议写一个自定义的finElement()方法,其中有明确的等待烘烤,以便您不必每次都写明确的等待。你不希望在任何地方使用隐式等待,因为如果元素不在那里,它会给你的测试执行带来性能问题。

+0

你可以给我一个这样的自定义findElement()方法的例子吗?谢谢 –

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"))); 
} 
+0

请详细介绍一下“Extract method”重构方法。谢谢 –

+0

@virendrachaudhary增加了一个简单的例子,希望至少给你一个出发点。 – alecxe

+0

非常感谢你 –

相关问题