我对 Selenium Webdriver 提供的隐式等待方法有些困惑。
a- 用于页面加载(使用 driver.get 时)或用于 Ajax 弹出式加载 假设我正在编辑框中输入一些内容,并且正在发生一些查找或 Ajax 调用。
我应该在 Ajax 调用或页面加载发生的任何地方使用所有方法,还是只使用一次就足够了(我只是从 Selenium RC 中获取引用,我们可以使用 Selenium.SetSpeed 方法)。
谢谢,
阿伦
最佳答案
Thread.sleep()
,它将条件设置为要等待的确切时间段。提供了一些方便的方法来帮助您编写仅在需要时等待的代码。 WebDriverWait
与 ExpectedCondition
相结合是一种可以实现的方法。示例如下:WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));
但是,根据语言实现而有所不同。有关
ExpectedCondition
的更多信息,请参阅 here driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
这两个定义都来自 seleniumhq 和最完美的定义。
toolsQA 中有一个很好的解释如何以及何时使用它们。加上 隐式、显式和 FLUENT 等待之间的比较,值得一看。
关于selenium - 何时使用隐式等待以及在何处使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27618695/