java - 如何杀死之前由 Web 驱动程序打开的浏览器实例(chrome)
问题描述
我想杀死之前由网络驱动程序打开的浏览器实例(chrome)。我该怎么做?在下面的代码中,我故意不想包含 quit() 或 close(),因为我想让浏览器保持打开状态。所以每次我执行或运行这个程序时,我都想杀死/关闭以前打开的浏览器,然后启动一个新实例并让它保持打开状态。因此,一次只能打开一个浏览器实例。我正在使用 Mac。
public static void main(String[] args){
String website = "http://www.google.com";
System.setProperty(".....");
WebDriver driver = new ChromeDriver();
driver.get(website);
}
atm 的行为是每次我执行此操作时,chrome 实例都会堆积起来。避免这种情况的最佳方法是什么?我这样做不是为了测试目的。我这样做是因为我想自动化一项任务。谢谢。
解决方案
你可以试试这段代码:
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "D:\\Automation\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
try{
Runtime.getRuntime().exec("TASKKILL /F /IM chrome.exe");
}
catch(IOException io){
System.out.println(io.getMessage());
}
}
注意:它将杀死之前打开的所有 chrome 实例以及新打开的实例。
推荐阅读
- swift - 无法理解如何使用 url-scheme
- flutter - 如何在 Flutter 中更新内部小部件
- openapi - 如何从 OpenAPI 3.0 中的数组模式中引用另一个模式?
- apache-spark - 如何将结构数组转换为多列?
- solr - Apache Nutch REST API 从运行 Nutch 的服务器检索数据?
- android - 如何从nodemcu发送和接收数据?
- laravel - 新用户登录时的laravel中间件重定向
- flutter - 如何使用会话的刷新令牌在 amazon-cognito-identity-dart-2 包中获取新的 jwt 访问令牌?
- javascript - 数据表选择不会第二次触发
- sqlite - 找出间隔不规则的总共五天的组。使用 SQLite