【发布时间】:2012-12-07 12:16:04
【问题描述】:
我正在编写代码来测试 web 应用程序,但在我的应用程序中我们有 AJAX 请求,数据将来自后端组件。因此获取数据需要一些时间。
那么你能建议我使用什么最好的方法吗?
提前谢谢 拉朱
【问题讨论】:
标签: java selenium webdriver selenium-webdriver
我正在编写代码来测试 web 应用程序,但在我的应用程序中我们有 AJAX 请求,数据将来自后端组件。因此获取数据需要一些时间。
那么你能建议我使用什么最好的方法吗?
提前谢谢 拉朱
【问题讨论】:
标签: java selenium webdriver selenium-webdriver
在驱动程序上设置隐式超时
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
当没有立即找到一个元素时,它会在抛出异常之前等待它 10 秒。这应该让您的 ajax 调用有足够的时间进行回调。
【讨论】:
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(new ExpectedCondition<WebElement>(){
@Override
public WebElement apply(WebDriver d) {
return d.findElement(By.id("myDynamicElement"));
}});
这将等待页面中通过 ajax 加载的特定元素(myDynamicElement)。
【讨论】: