Webdriver - 等待在 Firefox 中不起作用

2024-05-04

在我的应用程序中,我有一个用于在屏幕上显示记录的元素。所以在第一页上,它会显示类似“显示 2100 的 1-10”之类的内容。这是该元素的 CSS,它适用于所有浏览器。

span.GridPagingInfo

在我位于 iframe 中的应用程序中,我需要更改页面并等待页面加载,然后再继续。我之前提到的元素是页面上的最后一个元素,因此我将其用于等待。由于它位于底部,如果显示它,则加载了我继续测试所需的信息。

当我更改页面时,该元素的文本会发生变化。因此,如果我转到第二页,它会显示“显示 2100 中的 11-20”。我正在等待文本更改,然后再继续测试。下面是我正在使用的代码

//verify text of the element
  String actualText = driver.findElement(By.cssSelector("span.GridPagingInfo")).getText();
  Assert.assertEquals(actualtext, "displaying 1-10 of 2100");
//Go to next page by clicking the Next button
  driver.findElement(By.cssSelector("th.GridPaging button.ViewMore")).click();
//wait for text of the element to change
  WebDriverWait wait = new WebDriverWait(driver,30);
  wait.until(ExpectedConditions.textToBePresentInElementLocated(By.cssSelector("span.GridPagingInfo"), "displaying 11-20 of 2100"));

我也尝试过

wait.until(ExpectedConditions.invisibilityOfElementWithText(By.cssSelector("span.GridPagingInfo"), "displaying 1-10 of 2100"));

当我尝试这个时,它适用于除 Firefox 之外的所有浏览器。当我在 Firefox 中运行测试时,测试将在等待过程中超时,并显示错误,指出找不到文本。当我观看测试时,应用程序转到下一页,元素在那里,我想要的文本在那里,但 Selenium 说它找不到它。我尝试回滚到以前版本的 Firefox,但这没有帮助。

  • 火狐版本 - 33
  • IE 版本 - 11
  • IE 驱动程序 - 2.44
  • Chrome 版本 - 39
  • Chrome 驱动程序 - 2.11
  • 硒服务器 - 2.44.0.jar

我不知道为什么这解决了这个问题,但这就是我所做的。我刚刚将超时从 30 更改为 45,一切正常。在 Firefox 中,页面会在一秒钟内加载,所以我不知道为什么在 30 后超时。无论如何,更改为 45 解决了 Firefox 中的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webdriver - 等待在 Firefox 中不起作用 的相关文章

随机推荐