首页 > 解决方案 > Selenium-Nunit 如何等待几个图像

问题描述

我想问你,如何等待多张图片显示(图片一张一张显示)。in JAVA - Junit 是多重等待的代码

new WebDriverWait(driver, 10).until(ExpectedConditions.numberOfElementsToBe(By.(xpath("//div[@class = 'minions']//img"), number: 5));

我正在使用 Nunit (C#) 并且不知道如何做类似于 junit 等待的事情。好像c#没有这样的东西。有人可以帮我吗?

标签: c#seleniumselenium-webdriverjunitnunit

解决方案


只需driver.FindElements(By.XPath("...")).Count与显式等待一起使用:

var xpath = "//div[@class = 'minions']//img";
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

wait.Until(d => d.FindElements(By.XPath(xpath)).Count == 5);

如果你想要更容易重用的东西,你总是可以创建一个扩展方法:

public static class WebDriverWaitExtensions
{
    public static void UntilNumberOfElementsExist(this WebDriverWait wait, By locator, int number)
    {
        wait.Until(d => d.FindElements(locator).Count == number);
    }
}

并使用它:

var xpath = "//div[@class = 'minions']//img";
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

wait.UntilNumberOfElementsExist(By.XPath(xpath), 5);

推荐阅读