当前位置: 首页 > 知识库问答 >
问题:

在系统中发现硒元素,但在Jenkins中没有发现硒元素

裴承安
2023-03-14

我和我的团队最近开始使用SeleniumWeb驱动程序和JUnit开发自动化脚本。我面临着一个问题,我真的对如何继续下去毫无想法。任何建议都是有用的。

问题是这样的:我有一个页面,在这个页面中,我在一个表单中上传了两个电子表格,然后按submit按钮确认上传。

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

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

所有这些都可以在本地成功运行,在我的电脑上(windows 7,Firefox webDrive)。

当上传我的代码时,当jenkins构建/执行它时,我得到一个“未找到元素”,测试失败。

由于我无法直观访问jenkins运行的内容,所以我用<code>getPageSource()

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

对可能发生的事情有任何想法吗?

注意事项:

有两个10秒的thread.sleep .一个在每个excel上传的时候,一个在点击提交之后,保证下一页加载,保证excel成功提交。

我尝试使用xpath定位元素。事实上,我使用了Firefox中Firebug和Chrome中Web开发人员给我的xpath。只是为了确保xpath没有任何问题。两个xpath都成功地在我的本地机器上定位了元素,但在jenkins上失败了。

执行测试(本地和Jenkins)我可以看到数据库按应有的方式填充。

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

共有1个答案

东门楚
2023-03-14

请尝试使用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"));
 }
}); 

如这里所示。

 类似资料:
  • 我是Selenium和Ruby以及Cucumber/Gherkins世界的新手,正在尝试一个简单的脚本来导航到Google页面,找到搜索栏并输入一个单词,然后按enter或找到“Google search”元素并单击。 此外,要单击“Enter”,我可以执行send_keys:Enter或find Search按钮,并使用“click”正确吗? 提前谢谢你

  • 问题内容: 单击特定按钮时-我的测试站点将打开模式窗口。 但是模式窗口的打开是不同的 两者都有不同的标题,不同的选项和不同的位置。现在我应该等到模态。 是否可以等到任一模态窗口(WebElement)可见? 我已经在WebDriverWait方法中进行搜索,但是所有方法都必须等到特定的WebElement可见或可单击为止。 我找不到更好的方法来等到任何一个都可见。 您能提出一种解决这种情况的方法吗

  • 在火虫中,我有一个与此内容的链接: 如何使用“类名”访问链接(单击它)? 我尝试了以下方法: 但是我得到了错误: 线程“main” org.openqa.selenium中出现异常。InvalidSelectorException:给定的选择器cb_or_somename cb_area_0219无效或不产生WebElement 发生以下错误:InvalidSelectorError:不允许使用复

  • 问题内容: 我试图让Selenium等待页面加载后动态添加到DOM的元素。试过这个: 如果有帮助,这里是: 但是它抛出一个-看起来像期望元素存在,所以这是有缺陷的。这一定是Selenium的面包和黄油,不想重新发明轮子……任何人都可以提出其他选择,理想情况下不用自己动手做? 问题答案: 需要等待时,您需要异常调用以忽略。 有关更多信息,请参见FluentWait文档。但是请注意,此条件已经在Exp

  • [[Img1][Img2[Img3]我试图通过链接文本获取元素。但是低于例外。异常在线程"main"org.openqa.selenium.NoSuchElement异常:没有这样的元素:无法定位元素:{"方法":"链接文本","选择器":"CFDSDSR"} 我尝试切换到帧,但它给出了未找到的帧,但该帧存在: XPath: /html/body/table/tbody/tr/td/form/ta