Не используйте driver.close()
, используйте driver.quit()
.
driver.close()
закроет существующее окно Selenium, если окна нет, произойдет ошибка. Он действительно предназначен для использования при открытии нескольких разных окон браузера.
driver.quit()
- команда очистки в селене. Он закроет все существующие окна и затем разыменует объект драйвера. Не будет ошибки, если в данный момент нет открытых окон.
При этом у вас возникают проблемы не с драйвером, а с тем, что во втором тестовом примере (строка testCase(values[1].email,values[1].password);
) предполагается, что у вас есть объект браузера. Вы не делаете этого, потому что закрываете последнее окно в предыдущей строке, что приводит к тому, что ваш объект браузера становится ненужным.
Чтобы избавиться от этой ошибки, нужно позвонить
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
еще раз, прежде чем позвонить
testCase(values[1].email,values[1].password);
* EDIT *
Итак, чтобы дать вам полный блок кода:
var values = [{email:'correctuser@website.com',password:'correct'},{email:'wronguser@website.com',password:'wrong'}];
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('https://www.website.com/');
testCase(values[0].email,values[0].password);
driver.quit();
driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('https://www.website.com/');
testCase(values[1].email,values[1].password);