【发布时间】:2018-10-09 08:05:28
【问题描述】:
我正在使用 chromedriver 和 Java 来运行自动 Web 测试。为了能够在 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 发布 (4.7.3a) 内部版本号:20180405-1200
chromedriver.exe 2.42
JDK 8u151
Chrome 69.0.3497.100
有没有更好的方法关闭浏览器和驱动?
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为最新的二进制版本无法重现该问题。
标签: java selenium-chromedriver