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正则分组的应用
Nov 10 Python
使用Python获取Linux系统的各种信息
Jul 10 Python
Python使用xlrd读取Excel格式文件的方法
Mar 10 Python
python从网络读取图片并直接进行处理的方法
May 22 Python
python中的lambda表达式用法详解
Jun 22 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
flask框架中的cookie和session使用
Jan 31 Python
PyQt5爬取12306车票信息程序的实现
May 14 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控制网页过期时间的代码
2008/09/28 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
护理专业应届毕业生推荐信
2013/11/15 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
企业内部培训方案
2014/02/04 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
个人查摆剖析材料
2014/10/16 职场文书
2014年体育工作总结
2014/11/24 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书