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之重回函数
Oct 10 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
Python中print函数简单使用总结
Aug 05 Python
Python笔记之facade模式
Nov 20 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
简单的Python人脸识别系统
Jul 14 Python
Pycharm中如何关掉python console
Oct 27 Python
Python echarts实现数据可视化实例详解
Mar 03 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调整服务器时间的方法
2015/04/03 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
JS常用函数使用指南
2014/11/23 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
JS原生瀑布流效果实现
2019/04/26 Javascript
vue登录注册实例详解
2019/09/14 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
Python语言快速上手学习方法
2018/12/14 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python lxml中etree的简单应用
2019/05/10 Python
解决python 文本过滤和清理问题
2019/08/28 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
python实现图像全景拼接
2020/03/27 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
银行开业庆典方案
2014/02/06 职场文书
《春晓》教学反思
2014/04/20 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL