3

В некоторых случаях я знаю, что элемент не будет отображаться. но его ожидание ~ 30 сек.Как уменьшить время ожидания для исключения NoSuchElementException в Selenium?

Как уменьшить время ожидания для NoSuchElementException в селене?

Пример код:

String name; 
     try {  
      name = driver.findElement(By.xpath("XPath")).getText(); 
     } catch (NoSuchElementException e) { 
      name = "Name not displayed"; 
     } 
+0

У вас есть настоящий пример, который работает так же, как вы описали? Я совершенно уверен, что при условии, что код должен немедленно вызвать исключение. Описанное поведение доступно только в том случае, если использовать 'WebdriverWait' +' ExpectedConditions' – Andersson

+0

. Пробный блок находится внутри цикла из 626 итераций. Но ожидая найти только 200 + значений и записать их в файл excel для дальнейшего использования. Использовали неявное ожидание в течение 30 секунд после открытия браузера. –

+0

вы должны использовать явные ожидания, описанные в документации webdriver http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp – metar

ответ

1

Использование WebDriverWait для уменьшения времени ожидания экс (подождите 5 секунд):

(new WebDriverWait(driver, 5)).until(ExpectedConditions.visibilityOf(name)); 
1

Я думаю, что вы ищете для установки implitic времени ожидания для вашего драйвера:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

Для простых случаев это нормально использовать, для более совершенной автоматизации я бы изменил его на явное ожидание (используя WebDriverWait).

Подробнее о ждет: http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp

0

Мы можем использовать явное ожидание этого сценария, но должны быть осторожны с используемым ожидаемых условий.

WebDriverWait wait=new WebDriverWait(driver,10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); 

Иногда visibilityOf (Имя) не будет работать, так как в основном нахождения webelement имени необходимо заявление findElement, который будет использоваться.

WebElement name = driver.findElement (локатор);

Этот шаг может потерпеть неудачу, если элемент отсутствует!

Смежные вопросы