Явное ожидание в вспомогательном классе для использования в тестовых примерах - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь создать вспомогательный класс, который будет содержать различные ожидания 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));
    });

}

Имеется проблема с identifierType изd.FindElement(By.identifierType(identifier));

Ошибка

«By» не содержит определения «identifierType

1 Ответ

1 голос
/ 25 сентября 2019

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...