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 также включает в себя неявное ожидание, которое говорит, что ждать сколько угодно секунд, если элемент все еще не появляется, двигаться дальше.
Вы также можете попробовать использовать условия ожидания до появления ожидаемых условий и добавить их во все операторы регистра переключателей.