背景:一个网站的登录部分用到了selenium,但是在多次登录之后,发现进程里残留了很多的chromedriver.exe进程。项目打成jar包之后放到另外的机器上跑,发现不久之后就开始卡顿,甚至于弹不出浏览器的窗口,所以怀疑是不是因为chromedriver.exe残留进程太多导致的。而且由于个人有强迫症,所以这个决定优化一下。

原始的代码:

   System.setProperty("webdriver.chrome.driver", webDriverPath);
        WebDriver driver = new ChromeDriver();
        driver.get("xxxxxxxxxx");

关闭是用的driver.quit(),而不是driver.close()。这两个区别如下:

close只会关闭当前窗口

quit会推出驱动别切关闭所关联的所有窗口

后面就去百度一些,相关网址跟解决的代码贴下面。

https://www.testwo.com/blog/6931

最终解决的代码:

  ChromeDriverService service = new ChromeDriverService.Builder().usingDriverExecutable(new File(webDriverPath)).usingAnyFreePort().build();
        try {service.start();
        } catch (IOException e) {e.printStackTrace();
        }
//        System.setProperty("webdriver.chrome.driver", webDriverPath);
//        WebDriver driver = new ChromeDriver();
        WebDriver driver = new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());
        driver.get("xxxxxxxx");

关闭的代码:

driver.quit();
service.stop();

webdriver 执行完毕关闭chromedriver进程相关推荐

  1. Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)

    selenium操作chrome浏览器需要有ChromeDriver驱动来协助.webdriver中关浏览器关闭有两个方法,一个叫quit,一个叫close. 1 /** 2 * Close the ...

  2. [C#] 等待启动的进程执行完毕

    有能有时候我们启动了一个进程,必须等到此进程执行完毕,或是,一段时间, 关闭进程后再继续往下走. Example sample1 等待应用程序执行完毕 //等待应用程序执行完毕private void ...

  3. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )

    文章目录 前言 一.等待远程进程 mmap 函数执行完毕 二.从寄存器中获取进程返回值 三.博客资源 前言 前置博客 : [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | ...

  4. linux 下执行shutdown.sh命令不能关闭tomcat进程的解决方法

    1.故障背景 昨天现场人员发来消息说tomcat开启了10多个进程,吓我一跳,因为我每次升级都执行shutdown.sh命令,并且这是官网提供的所以也没有怀疑,当我连现场查看时确实有这样的问题. 2. ...

  5. java 等待线程池结束_等待线程池中任务执行完毕做优雅关闭

    背景 在Java开发中,如果涉及多线程,会经常使用到线程池,本期不额外讲述线程池本身相关的东西.考虑一种场景,如果我们提交给线程池的任务都相对比较耗时,而在任务启动运行后,如果后续有需求的变更,要重新 ...

  6. 关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)...

    以前看到网上一些小程序,在处理完事物后会自动发送qq消息,但是一直搞不懂是说明原理.也在网上找过一些python登陆qq发送消息的文字,但是都太复杂了.今天偶然看到一篇文章,是用python调用win ...

  7. nginx关闭所有进程linux,linux nginx启动,重启,关闭命令

    启动操作 /usr/local/nginx/conf/nginx 停止操作 停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的 步骤1:查询nginx主进程号 ps - ...

  8. 判断线程是否执行完毕_关于线程池你不能不知道的东西

    前言 平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的<阿里巴巴 Java 手册>里也有一条: 可见线程池的重要性. 简单来说使用线程池有以下几个目的: 线程是稀缺资源,不 ...

  9. js等待 callback 执行完毕_前端开发,一篇文章让你彻底搞懂,什么是JavaScript执行机制!...

    不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序.因为javascript是一门单线程语言,所以我们可 ...

最新文章

  1. 探寻背后的机制化繁为简:网站程序升级不过是文件同步
  2. 【Android 事件分发】ItemTouchHelper 实现拖动排序
  3. devserver配置_vue.config.js的配置
  4. 亚马逊记AWS(Amazon Web Services)自由EC2应用
  5. 微软反向 RDP 漏洞补丁不当,第三方 RDP 客户端易受攻击
  6. Python3.2官方文档翻译--异常抛出和自定义异常
  7. 未来:互联网+数字经济,智慧零售到底智慧在哪儿?
  8. 我国农业谋定国际竞争战略取向 对话国际农民丰收节贸易会
  9. pspice仿真笔记——spice模型转化
  10. 人人开源搭建后台管理系统
  11. android 模拟器 pubg,雷电安卓模拟器怎么玩绝地求生刺激战场 PC端带你愉快吃鸡...
  12. PrestoDB 大数据查询引擎
  13. html三角形下拉列表,select自定义小三角样式代码(实用总结)
  14. 油溶性CdSe/ZnS量子点,以CdSe为核心,ZnS为壳层,表面由疏水配体包裹的核/壳型荧光纳米材料
  15. CentOS6.6下配置KMS自动激活服务器
  16. GitHub 上 100K+ Star 的前端面试开源项目汇总(进大厂必备)
  17. 什么叫版面_什么叫版面字数
  18. UCanCode发布领先的大型组态建模仿真CAD与GIS开源套件2019版本
  19. 查看Linux内核修改及更新记录方法
  20. 数字电路基础知识|时钟和时序

热门文章

  1. Rsync下行同步+inotify实时同步介绍和部署
  2. 闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群
  3. rust石头墙几个c4_哪个房间需要清扫 石头扫地机器人T6可能比你还清楚
  4. java map join_HashMap 常见应用:实现 SQL JOIN
  5. 定价是什么意思_茶商给茶叶定价也有潜规则!从定价就能看出,买的不如卖的精...
  6. 异步通信在生活中的例子_聊聊工作中经常遇到的“异步”,你掌握了多少
  7. golang PHP的区别,erlang和golang的区别
  8. 知道坐标matlab三维作图,已知点坐标,要求根据坐标作出三维曲面图
  9. 2021高考一诊成绩查询,双流棠湖中学高2021届成都市“一诊”成绩已揭晓
  10. change element 原始值_change-element