Превышено время получения сообщения от средства визуализации - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь получить статус транзакций с какого-либо веб-портала, и я использую настройки Chrome ниже в своем java-приложении, и я получаю

Превышено время ожидания получения сообщения от средства визуализации: 60.000

и время ожидания всех ожидающих транзакций истекло.

Информация о сеансе: без головы хром = 68.0.3440.75
Информация о драйвере: chromedriver = 2.38 (0)
платформа = Linux 2.6.32-696.23.1.el6.x86_64 x86_64)

Как я могу справиться с этим и, если происходит какой-либо таймаут, перейти к следующей транзакции?

Я перепробовал все перестановки и комбинации с приведенными ниже утверждениями, но все еще не работает;

options.addArguments("headless");
options.addArguments("disable-gpu");
WebDriver driver = new ChromeDriver(caps);
TimeUnit.SECONDS.sleep(1);
driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Это сообщение об ошибке ...

Timed out receiving message from renderer: 60.000

... означает, что ChromeDriver не смог инициировать / создать новый WebBrowser , т.е. Браузер Chrome сеанс.

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:

  • Вы используете chromedriver = 2,38
  • Примечания к выпуску chromedriver = 2,38 четко упоминают следующее:

Поддержка Chrome v65-67

  • Вы используете хром = 68.0
  • Примечания к выпуску ChromeDriver v2.41 четко упоминает следующее:

Поддержка Chrome v67-69

  • Ваша Selenium Client версия нам неизвестна.
  • Ваша версия JDK - версия, нам неизвестная.

Таким образом, существует явное несоответствие между ChromeDriver v2.38 и Chrome Browser v68.0

Решение

0 голосов
/ 25 августа 2018

Вы можете использовать try / catch

try{
    //your transaction
} catch (TimeoutException e) {
    //log transaction timeout
}
...