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? 制作一个网站为例
Mar 06 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
python Tkinter的图片刷新实例
Jun 14 Python
python获取点击的坐标画图形的方法
Jul 09 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
python3 webp转gif格式的实现示例
Dec 10 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
如何基于python实现年会抽奖工具
Oct 20 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 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
域名查询代码公布
2006/10/09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
vue实现通讯录功能
2018/07/14 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
求职自荐信
2013/12/14 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
团支部书记竞选稿
2015/11/21 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript