selenium+python 去除启动的黑色cmd窗口方法


Posted in Python onMay 22, 2018

其实 selenium启动窗口的时候就是 使用了subprocess.Popen 启动的驱动程序的,只要在启动的时候加上启动不显示窗口的参数即可。

下面魔改开始O(∩_∩)O哈哈~

修改代码 位于 D:\Python35\Lib\site-packages\selenium\webdriver\common\service.py 主要是 Service类的start函数

def start(self):
  """
  Starts the Service.
  :Exceptions:
   - WebDriverException : Raised either when it can't start the service
   or when it can't connect to the service
  """
  try:
   cmd = [self.path]
   cmd.extend(self.command_line_args())
   if 'win32' in str(sys.platform).lower(): ### 这里判断是否是windows平台
    ### 在windows平台上就隐藏窗口
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW
    startupinfo.wShowWindow = subprocess.SW_HIDE
   else:
    startupinfo = None
   self.process = subprocess.Popen(cmd, env=self.env,
           close_fds=platform.system() != 'Windows',
           stdout=self.log_file, stderr=self.log_file,startupinfo=startupinfo) ### 启动驱动
   self.PID = self.process.pid ### 将cmd窗口的进程pid 保留 因为 窗口被隐藏了 所以在后续程序中必须考虑主控进程结束的时候必须结束掉 驱动cmd窗口进程
  except TypeError:
   raise
  except OSError as err:
   if err.errno == errno.ENOENT:
    raise WebDriverException(
     "'%s' executable needs to be in PATH. %s" % (
      os.path.basename(self.path), self.start_error_message)
    )
   elif err.errno == errno.EACCES:
    raise WebDriverException(
     "'%s' executable may have wrong permissions. %s" % (
      os.path.basename(self.path), self.start_error_message)
    )
   else:
    raise
  except Exception as e:
   raise WebDriverException(
    "The executable %s needs to be available in the path. %s\n%s" %
    (os.path.basename(self.path), self.start_error_message, str(e)))
  count = 0
  while True:
   self.assert_process_still_running()
   if self.is_connectable():
    break
   count += 1
   time.sleep(1)
   if count == 30:
    raise WebDriverException("Can not connect to the Service %s" % self.path)

注意 在前面先导入 sys包

因为隐藏了驱动cmd窗口 所以 结束程序的时候 一定要做杀死驱动cmd窗口的动作哦 !O(∩_∩)O!!

以上这篇selenium+python 去除启动的黑色cmd窗口方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现绘制树枝简单示例
Jul 24 Python
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python写入文件自动换行问题的方法
Jul 05 Python
关于Python3 类方法、静态方法新解
Aug 30 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
django queryset 去重 .distinct()说明
May 19 Python
python3实现163邮箱SMTP发送邮件
May 22 #Python
django请求返回不同的类型图片json,xml,html的实例
May 22 #Python
Django使用HttpResponse返回图片并显示的方法
May 22 #Python
python实现最长公共子序列
May 22 #Python
使用python存储网页上的图片实例
May 22 #Python
python3模块smtplib实现发送邮件功能
May 22 #Python
Python3.x爬虫下载网页图片的实例讲解
May 22 #Python
You might like
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
python算法学习之基数排序实例
2013/12/18 Python
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
学习雷锋寄语大全
2014/04/11 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
党员干部一句话承诺
2014/05/30 职场文书
城市创卫标语
2014/06/17 职场文书
观看建国大业观后感
2015/06/01 职场文书
常住证明范本
2015/06/23 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL