Я использую chromedriver и Java для запуска автоматических веб-тестов.Чтобы иметь возможность использовать расширения в Chrome, я использую свой существующий профиль браузера.С тех пор я испытываю следующее:
- запустить тест на селен с зеленым результатом
- открыть Chrome вручную (или запустить какой-либо тест)
- получить сообщение об ошибке "Chromeприложение не закрылось должным образом "
Я закрываю браузер и драйвер следующим образом:
@AfterClass public static void tearDownClass() {driver.quit();}
Я пробовал:
@AfterClass public static void tearDownClass() {driver.close();}
, но закрывается только браузер, а не драйвер.
После некоторых попыток исправить я имитирую нажатие клавиш CTRL + SHIFT + Q:
package SSO_CWP_APPROVAL;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import org.openqa.selenium.WebDriver;
public class Keyboard_events {
public static WebDriver driver;
public Keyboard_events(WebDriver driver) {Keyboard_events.driver = driver;}
public void ctrl_shift_q() throws AWTException, InterruptedException {
Robot rob = new Robot();
rob.keyPress(KeyEvent.VK_CONTROL);
rob.keyPress(KeyEvent.VK_SHIFT);
rob.keyPress(KeyEvent.VK_Q);
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_SHIFT);
rob.keyRelease(KeyEvent.VK_Q);
Thread.sleep(1000);
}
}
Спящий режимв этом случае необходимо.Спите меньше времени и получите ошибку снова.
@AfterClass public static void tearDownClass() throws AWTException, InterruptedException {K_events.ctrl_shift_q();driver.quit();}
двоичные файлы:
Версия: Oxygen.3a Release (4.7.3a) Идентификатор сборки: 20180405-1200
chromedriver.exe 2.42
JDK 8u151
Chrome 69.0.3497.100
Есть ли лучший способ закрыть браузер и драйвер?