gpt4 book ai didi

java - 系统中发现 Selenium 元素,但 Jenkins 中未发现

转载 作者:行者123 更新时间:2023-12-02 07:51:57 25 4
gpt4 key购买 nike

我和我的团队最近开始使用 Selenium Web Driver 和 JUnit 开发自动化脚本。我面临一个问题,而且我真的不知道如何继续。任何建议都会有用。

问题是:我有一个页面,我在其中以表单形式上传两个 Excel,然后按提交按钮确认上传。

上传完成后,它会使用数据填充数据库,下一页会确认每个 Excel 的行数。

我正在尝试获取确认上传的元素,该元素是“标签”类型。

所有这些都在我的本地电脑(Windows 7、Firefox WebDriver)上成功运行。

上传我的代码时,以及当 jenkins 构建/执行它时,我收到“未找到元素”并且测试失败。

由于我无法直观地访问 jenkins 运行的内容,因此我用 getPageSource() 替换了元素确认(在 jenkins 上失败)。

getPageSource() 返回我希望看到的页面以及我试图查找的元素(本地和 jenkins 上)。

对于可能发生的事情有什么想法吗?

注释:

有两个10秒的thread.sleep。上传每个 Excel 时一次,单击提交后一次,以确保下一页加载并且 Excel 成功提交。

我尝试使用 xpath 来定位该元素。事实上,我在 Firefox 中使用了 Firebug 提供的 xpath,在 Chrome 中使用了 Web Developer 提供的 xpath。只是为了确保 xpath 没有任何问题。两个 xpath 在我的本地计算机上成功找到该元素,但在 jenkins 上失败。

执行测试(在本地和 Jenkins 上)我可以看到数据库按预期填充。

请原谅缺少代码,但我可以分享的内容受到限制。

最佳答案

尝试使用 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 .

关于java - 系统中发现 Selenium 元素,但 Jenkins 中未发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com