我刚开始使用Selenium Web Driver来测试在线银行交易应用程序。
我喜欢它,但有些东西让我恼火。假设我使用以下代码访问登录屏幕:
driver.get("https://webdev.myurl:18113/");
WebElement element = driver.findElement(By.name("username"));
element.sendKeys("xxxx");
element.submit();
浏览器启动和页面加载和显示。但它看起来像是从外部站点尝试加载元素,而findElement(第二行)等待这些请求完成!
有没有办法绕过这个行为?
我也试过了:
WebElement element = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver d) {
return d.findElement(By.name("username"));
}
});
但它没有帮助,因为这条线似乎只在页面完全加载时执行。
编辑:我和其中一个人交谈过......他告诉我ipinvite.iperceptions.com不是我们的应用程序调用的。事实上,当我在FF加载网站时,我没有看到这个电话?!Selenium网络驱动程序是否会调用此站点:ipinvite.iperceptions.com?
任何人都有同样的问题吗?
答案 0 :(得分:1)
您可以尝试将隐式等待时间和页面加载时间设置为0.谷歌“selenium隐式等待时间”和“selenium页面加载时间。”
答案 1 :(得分:0)
get
功能的超时时间尚未实现。
在创建新的FirefoxDriver时,构造函数中存在重载,允许您指定命令超时,这是等待每个命令的最长时间。
您可以参考post
上的答案答案 2 :(得分:-3)
感谢您回复的时间
此致