java - 如何等待一定数量的行?

标签 java selenium selenium-webdriver webdriver

我正在测试一个网页,它的一些内容加载了 XMLHttpRequest .我需要检查我的 <table>在 Ajax 调用之后包含 2 行(因为页面在加载时已经包含 1 行)。

我的测试:

@Before
public void setUp() throws Exception {
    driver = new FirefoxDriver();
    driver.get("http://localhost/index.html");
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}

@Test
public void testIfPartnerListPageIsPresent() {
    driver.findElement(By.id("123")).click();
    List<WebElement> rawList = driver.findElement(By.id("id-213"))
        .findElements(By.tagName("tr"));
    assertTrue("More than 1 raw", rawList.size() > 1);
}

我如何要求 Selenium 等待我表中的其他行?

最佳答案

此函数将等到表至少包含给定的行数

 public void waitUntilRowPopulates(WebElement element, final int rowCount) {
        final WebElement table = element;

        new FluentWait<WebDriver>(driver)
        .withTimeout(60, TimeUnit.SECONDS)
        .pollingEvery(10, TimeUnit.MILLISECONDS)
        .until(new Predicate<WebDriver>() {

            public boolean apply(WebDriver d) {
                 List<WebElement> rawList = table.findElements(By.tagName("tr"));
                 return (rawList.size() >= rowCount);
            }
        });
    }

关于java - 如何等待一定数量的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22707284/

相关文章:

Android Studio - 谷歌网络驱动程序

python - 在选项卡之间切换并关闭窗口中的选项卡会出错

javascript - 如何在 contenteditable div 上模拟打字?

java - 鼠标悬停操作 - 无法单击隐藏链接

selenium - 使用 BeautifulSoup 或 Selenium 抓取网站时无法找到数据

java - ChromeDriver 无法导航到 eclipse 中的 URL

java - 无法让事件在我的 libgdx Actor 中运行

java - 为我的应用程序打开一个 html 帮助页面

c# - Selenium C# 如何在类中的动态 li id 列表中选择一个元素

java - 如何使用 java 解析器在 AST 中构建 for 语句?