首页 > 编程 > Python > 正文

selenium+python 去除启动的黑色cmd窗口方法

2020-01-04 15:00:11
字体:
来源:转载
供稿:网友

其实 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窗口方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表