我和我的团队最近开始使用 Selenium Web Driver 和 JUnit 开发自动化脚本。我面临一个问题,而且我真的不知道如何继续。任何建议都会有用。
问题是:我有一个页面,在其中我以表单形式上传两个 Excel,然后按提交按钮确认上传。
上传完成后,它会使用数据填充数据库,下一页会确认每个 Excel 的行数。
我正在尝试获取确认上传的元素,该元素是“标签”类型。
所有这些都在我的本地电脑(Windows 7,Firefox WebDriver)上成功运行。
当上传我的代码时,当詹金斯构建/执行它时,我得到一个“未找到元素”并且测试失败。
由于我无法直观地访问詹金斯运行的内容,因此我将元素确认(在詹金斯上失败)替换为getPageSource()
.
getPageSource()
返回我希望看到的页面以及我试图找到的元素(本地和詹金斯上)。
关于可能发生的事情有什么想法吗?
Notes:
尝试使用 Fluentwait 而不是 Thread.sleep()。您的元素可能在 10 秒内尚未加载,您可以尝试此操作
// Waiting 30 seconds for an element to be present on the page, checking
// for its presence once every 5 seconds.
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, SECONDS)
.pollingEvery(5, SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("foo"));
}
});
如给定的here http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)