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生成IP段的方法
Jul 07 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
python3如何将docx转换成pdf文件
Mar 23 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
django如何自己创建一个中间件
Jul 24 Python
Python二元赋值实用技巧解析
Oct 25 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 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动态创建Flash动画
2006/10/09 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
索趣科技的答案
2007/02/07 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
BootStrap table使用方法分析
2016/11/08 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
详细讲解Python中的文件I/O操作
2015/05/24 Python
简单解析Django框架中的表单验证
2015/07/17 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
请说出几个常用的异常类
2013/01/08 面试题
生产管理的三大手法
2013/11/11 职场文书
小学生安全责任书
2014/07/25 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
不同意离婚答辩状
2015/05/22 职场文书
python实现商品进销存管理系统
2022/05/30 Python