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 相关文章推荐
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
Python2.x与Python3.x的区别
Jan 14 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
Keras实现DenseNet结构操作
Jul 06 Python
golang/python实现归并排序实例代码
Aug 30 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 Python
Python实现排序方法常见的四种
Jul 15 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
PHP下判断网址是否有效的代码
2011/10/08 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php简单防盗链实现方法
2015/07/29 PHP
php单例模式的简单实现方法
2016/06/10 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
限制复选框的最大可选数
2006/07/01 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
js使用递归解析xml
2014/12/12 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
js实现拖拽效果
2015/02/12 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
JSON Web Tokens的实现原理
2017/04/02 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
大学生关于奋斗的演讲稿
2014/01/09 职场文书
迟到检讨书1000字
2014/01/15 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
服务标语口号
2014/07/01 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
信访工作个人总结
2015/03/03 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python