Seleneium WebDriver - Получение другого исключения

Я запускаю тест на селен, используя режим сетки. Всякий раз, когда я не могу найти элемент на странице, я получаю следующее исключение

"Время ожидания HTTP-запроса к удаленному серверу WebDriver для URL-адреса http://localhost:4444/wd/hub/session/5fe58b67-491c-4b72-9a3a-a6dc790cc29d/element истекло через 60 секунд".

Я ожидал исключение, подобное обнаруженному элементу NoSuch. Но я получаю тайм-аут. Любые указатели на это были бы очень полезны

Код ниже

try
{
    switch (findBy.ToLower())
    {
        case "classname":
            webElement = driver.FindElement(By.ClassName(findByValue));
            break;
        case "cssselector":
            webElement = driver.FindElement(By.CssSelector(findByValue));
            break;
        case "id":
            webElement = driver.FindElement(By.Id(findByValue));
            break;
        case "linktext":
            webElement = driver.FindElement(By.LinkText(findByValue));
            break;
        case "name":
            webElement = driver.FindElement(By.Name(findByValue));
            break;
        case "partiallinktext":
            webElement = driver.FindElement(By.PartialLinkText(findByValue));
            break;
        case "tagname":
            webElement = driver.FindElement(By.TagName(findByValue));
            break;
        case "xpath":
            webElement = driver.FindElement(By.XPath(findByValue));
            break;
    }
}
catch (Exception e)
{
    return null;
}

Большое спасибо

1 ответ

Pankaj Katiyar правильно, что тайм-аут происходит, потому что вы используете явное ожидание. Selenium также включает в себя неявное ожидание, которое говорит, что ждать сколько угодно секунд, если элемент все еще не появляется, двигаться дальше.

Вы также можете попробовать использовать условия ожидания до появления ожидаемых условий и добавить их во все операторы регистра переключателей.

Другие вопросы по тегам