2013-04-10 2 views
3

Я запускаю набор из 400 скриптов selenium2 (поддерживаемый webdriver) в java.Пропуск скриптов weblriver селена после ошибки «Ошибка связи с удаленным браузером» в chrome

Когда я запускаю скрипты на узле, зарегистрированном в сетке, иногда получаю ошибку . После того, как скрипт с этой ошибкой закрыт, а другие скрипты запущены, примерно 10-20 скриптов пропускаются из-за caused by null error.

Также существует только один экземпляр браузера за один раз. Я использую браузер Chrome.

Если когда-нибудь я получаю ошибку Error communicating with the remote browser происходит ошибка caused by null.

Я попытался избавиться от первой ошибки, возникшей из-за ошибки this solution. Но все же я получаю обе ошибки.

Любая помощь?

Редактирование Также, когда я запускаю скрипты по одному, все скрипты работают нормально.

+0

Какая версия Selenium? Какая версия Chrome? Какая версия драйвера Chrome? – Arran

+0

@Arran: Я использую selenium-server-standalone-2.31.0.jar chrome 26.0.1410.43 m и chromedriver_win_26.0.1383.0. –

ответ

0

Обычно это происходит, когда экземпляр Webdriver все еще жив, и браузер неожиданно закрыт.

Просьба представить более подробную информацию, как,

  1. запускать скрипты последовательно или параллельно делать.
  2. Вы вызываете экземпляр Webdriver перед каждым методом тестирования и закрываете его после каждого метода.
  3. Какую тестовую структуру вы используете.
  4. Существует ли зависимость между методами тестирования.

В соответствии с вашим решением от How to close a ChromeDriver when running on Grid? не звучит хорошо, потому что, вы закрываете WebDriver, например, в @Aftersuite после всех методов испытаний завершения выполнения. Если какая-либо причина, по которой браузер закрыт при определенном методе тестирования неожиданно, остальная часть ваших методов также завершится неудачно из-за того, что браузер не будет жив. Вот почему вы получаете исключение null.

Мое предложение - вызывать и закрывать экземпляр webdriver до и после каждого метода тестирования. как,

@BeforeMethod 
public void setUp(){ 
WebDriver driver = new ChromeDriver(); 
} 

и закрыть его,

@AfterMethod 
public void tearDown(){ 
driver.quit(); 
} 

Таким образом, если какой-либо из причин, браузер закрыт неожиданно только данный тест не оскудела остальные все.

+0

Я запускаю скрипты последовательно. Я также вызываю новый экземпляр webdriver и закрываю после каждого теста. Я использую структуру testNG. Сначала вызывается метод setup(), затем вызывается метод test() и затем метод tearDown(). Я следую тому же методу, который вы описали выше. –

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