java - 如何从 WebElements 列表中获取元素数量(大小)

标签 java selenium selenium-webdriver

我试图在单击其中一个链接之前验证网页子菜单中断言大于 3 个元素的元素(在本例中为链接)数量,但断言错误的大小为零。

@Test
public void top3NewsStoriesHoverTest()
{

    WebElement hoverNews = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("[class^='_3EBT0 _2m2om uVwkS']")));

    Actions action = new Actions(driver);
    action.moveToElement(hoverNews).build().perform();

    List<WebElement> subMenuTopStories = driver.findElements(By.cssSelector("[class^='_1yCjv'] [class^='dHmN_']"));

    //System.out.println(subMenuTopStories.size());
    assertEquals(subMenuTopStories.size(), greaterThan(3));

    WebElement subMenu = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[class^='dHmN_']")));
    subMenu.click();

}

最佳答案

您正在比较整数和匹配器之间的相等性。您可能想要的是 Hamcrest 的 assertThat,而不是 assertEquals(假设您正在使用 hamcrest,看起来您正在这样做)

关于java - 如何从 WebElements 列表中获取元素数量(大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51868007/

相关文章:

java - Eclipse 无法启动 chrome 驱动程序

java - ChromeDriver - 元素 ID 或 Xpath 更改

css - 如何使用 ruby​​ 获取 style - "width"的百分比值?

java - 实时获取 Selenium 性能日志(Java、Kotlin)

selenium - WebDriver 和 DevTool 协议(protocol)有什么区别

c# - 如何使用 selenium 从工具提示中抓取文本?页面不包含工具提示 html

java - 是上下文 :annotation-config an alternative to @AutoWired?

java - 缓存 XML 文件 Java

java - Spring - 如何将 JSP 表单中的值与数据库中的值进行比较? (服务+DAO)

java - 如何覆盖Java DB?