JMeter Webdriver проблема времени ожидания - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть сценарий, в котором мне нужно нажать на кнопку на веб-странице, которая будет выполнять процесс.Как только я нажму на эту кнопку, появится сообщение «в процессе».Я жду, чтобы это сообщение исчезло с веб-страницы для следующего действия.

Этот процесс займет от 30 до 150 секунд, которые я не могу контролировать. Так что я дал время ожидания 180сек в сэмплере.Проблема в том, что процесс завершится через 30 секунд, а веб-драйвер будет ждать 180 секунд для следующего действия.В этом случае приложение выйдет из системы из-за неактивных пользовательских настроек.

Как справиться с этой ситуацией?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вы можете перейти к функции ExpectedConditions.invisibilityOfElementLocated (By) , которую можно использовать с помощью Явное ожидание , поэтому WebDriver будет опрашивать DOM, пока элемент не исчезнет в течение максимум 150 секунд,Интервал опроса по умолчанию составляет 500 миллисекунд, однако его можно настроить , как требуется.

Пример кода будет выглядеть примерно так:

var wait = new WebDriverWait(WDS.browser, 150)
wait.pollingEvery(1, java.util.concurrent.TimeUnit.SECONDS)
org.openqa.selenium.support.ui.ExpectedConditions.invisibilityOfElementLocated(By.xpath("//*[contains(text('process in progress')]"))

Дополнительная информация: Пробоотборник WebDriver: ответы на ваши 10 вопросов

0 голосов
/ 30 сентября 2018

Вы можете использовать ExpectedConditions.presenceOfElementLocated в сочетании с WebDriverWait .

Это будет ждать максимум 150 с, но если элемент доступен, прежде чем он не будет так долго ждать:

 var wait = new pkg.WebDriverWait(WDS.browser, 150);
 wait.until(pkg.ExpectedConditions.presenceOfElementLocated(
         pkg.By.cssSelector('ul.suggestions')))

Подробности см. Здесь:

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