太多的等待

时间:2013-01-17 12:16:20

标签: selenium

是否真的有必要使用waitForElement或其他等待...如果我测试由ajax状态加载的javascript单页应用程序?我必须在每个动作之前(例如:点击,键入)waitForElement

1 个答案:

答案 0 :(得分:0)

是的,Ajax是必要的。但如果你使用“不要重复自己”的原则,这不是问题。你应该创建这样的方法:

clickWithExplicitWait(lctr) {
    waitForElementPresent(lctr)//uses ajax wait timeout
    driver.click(lctr)//uses implicit wait timeout
}

driver.click()使用隐式等待。因此,您可以为隐式等待和显式“元素等待”指定不同的超时。 您可以使用org.openqa.selenium.support.ui.ExpectedConditions包实现waitForElementPresent()或其他类似方法。

如果您需要等待其他元素在操作后出现,请使用以下内容:

clickAndWait(lctrToClick, lctrToWait) {
    driver.click(lctrToClick)
    waitForElementPresent(lctrToWait)
}