1

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

4

1 回答 1

1

是的,这对 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)
}
于 2014-04-21T14:06:06.577 回答