Метод ожидания пока элемент не отобразится, но необходимо передать элемент в качестве параметра, чтобы сделать его обобщенным c методом, который будет использоваться - PullRequest
0 голосов
/ 20 марта 2020

Я хочу создать общий c метод, который будет использоваться в наборе тестов. Этот метод должен принимать веб-элемент в качестве параметра. Затем метод должен вернуть true или false в зависимости от его видимости в течение настроенного времени ожидания.

public bool WaitForElementVisibility(IWebDriver driver, IWebElement element)
{
    try
    {
        //code to wait until element is displayed similar to this. But instead of passing By.Id(login) pass the element
        new WebDriverWait(driver,TimeSpan.FromSeconds(timeOut)).Until(ExpectedConditions.ElementExists((By.Id(login))));
        return true;
    }
    catch(Exception e)
    {
        return false;
    }
}

Я создаю структуру в селене, C#. Вы можете видеть мой прогресс в этом https://umangamadawala.blogspot.com/.

Заранее спасибо.

1 Ответ

0 голосов
/ 27 марта 2020

Я думаю, что вы ищете что-то вроде этого кода:

Вы можете передать свой By.Id ("Логин") как элемент By без проблем, поэтому вызов этой функции будет выглядеть примерно так: :

WaitUntilElementVisible (By.Id ("Логин")); и если вы хотите изменить в этом вызове тайм-аут, вы позвоните так: WaitUntilElementVisible (By.Id ("Login"), 45);

Вы можете поместить туда свою попытку и поймать логи c , Я использую ElementIsVIsible, но вы можете использовать ElementExist только для изменения вызова.

protected virtual IWebElement WaitUntilElementVisible(By elementLocator, int timeout = 30)
        {
                var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));

                return wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(elementLocator));

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...