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 Web开发框架Django
Jun 30 Python
简单说明Python中的装饰器的用法
Apr 24 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
Python基础之文件读取的讲解
Feb 16 Python
Python进度条的制作代码实例
Aug 31 Python
Python实现数值积分方式
Nov 20 Python
python中如何使用insert函数
Jan 09 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
python实现可下载音乐的音乐播放器
Feb 25 Python
Python检测端口IP字符串是否合法
Jun 05 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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中的string类型使用说明
2010/07/27 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
python去掉空白行的多种实现代码
2018/03/19 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
保安队长职务说明书
2014/02/23 职场文书
霸王洗发水广告词
2014/03/14 职场文书
项目建议书范文
2014/05/12 职场文书
相亲大会策划方案
2014/06/05 职场文书
初中教师个人工作总结
2015/02/10 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015年招生工作总结
2015/05/04 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android