在我的应用程序中,我有一个显示在屏幕上的记录元素。所以在第一页上,它会说“显示2100的1-10”。这是该元素的CSS,它适用于所有浏览器。Webdriver - 等待在Firefox中不工作
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中运行我的测试时,测试将等待一段时间,并显示错误,表示无法找到文本。当我观看测试时,应用程序进入下一页,元素在那里,我想要的文本在那里,但Selenium说它找不到它。我尝试回滚到以前的Firefox版本,但这没有帮助。
- 版Firefox - 33
- IE版本 - 11
- IE驱动器 - 2.44
- Chrome版本 - 39
- 铬驱动器 - 2.11
- Selenium服务器 - 2.44.0.jar
你的代码应该可以工作。这是为什么它不是一个谜。尽管如此,请尝试一件事。 “span标签”必须位于“div”或“a”标签下,实际上它是其父项。因此,制定代码以便从父项中检索innerHTML /文本,然后检查文本**“显示1-10的2100”**的隐藏性。 – Subh 2014-11-25 17:00:01
为什么这个问题有一个downvote。如果您在没有任何解释的情况下只是低估了一个问题,那么提问的人就不知道要解决什么问题。 – TestRaptor 2014-12-02 16:19:16