帮助程序类中的显式等待,供测试用例在需要时使用



我正在尝试创建一个帮助程序类,该类为Selenium WebDriver保存不同的等待时间。这是为了在创建测试用例时为用户提供更大的灵活性。我在显式等待的帮助程序类方面遇到了一些问题。

测试用例

[Test]
[TestCase(Browser.Chrome)]
public void ValidateExpicitWait(Browser browser)
{
Driver = StaticWebDriverFactory.GetLocalWebDriver(browser);
Driver.Url = "https://example.com/";
WaitsHelper.SetExplicitWait(Driver, ElementIdentifierType.LinkText, "More information...", 10);
var title = Driver.Title;
Assert.AreEqual(true, title.Contains("Example Domain"), $"Expected title does not match actual: {title}", title);
}

显式等待类

public static void SetExplicitWait(IWebDriver driver, ElementIdentifierType identifierType, string identifer, int timeout = 10)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));
IWebElement element = wait.Until<IWebElement>((d) =>
{
return d.FindElement(By.identifierType(identifer));
});
}

它与d.FindElement(By.identifierType(identifier));identifierType有问题

错误

"By"不包含"标识符类型"的定义

By类无法将Enum转换为静态方法,它没有identifierType方法。您可以改为发送By对象

public static void SetExplicitWait(IWebDriver driver, By by, int timeout = 10)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));
IWebElement element = wait.Until<IWebElement>((d) =>
{
return d.FindElement(by);
});
}
WaitsHelper.SetExplicitWait(Driver, By.LinkText("More information..."), 10);

最新更新