hide chromeDriver console in python(在 python 中隐藏 chromeDriver 控制台)
问题描述
我在 Selenium 中使用 chrome 驱动程序打开 chrome,登录到路由器,按一些按钮,上传配置等.所有代码都是用 Python 编写的.
I'm using chrome driver in Selenium to open chrome , log into a router, press some buttons ,upload configuration etc. all code is written in Python.
这里是获取驱动的部分代码:
here is the part of the code to obtain the driver:
chrome_options = webdriver.ChromeOptions()
prefs = {"download.default_directory": self.user_local}
chrome_options.add_experimental_option("prefs", prefs)
chrome_options.experimental_options.
driver = webdriver.Chrome("chromedriver.exe", chrome_options=chrome_options)
driver.set_window_position(0, 0)
driver.set_window_size(0, 0)
return driver
当我启动我的应用程序时,我得到一个 chromedriver.exe 控制台(一个黑色窗口),然后打开一个 chrome 窗口,我的所有请求都已完成.
when i fire up my app, i get a chromedriver.exe console (a black window) followed by a chrome window opened and all my requests are done.
我的问题:在 python 中有没有办法隐藏控制台窗口?
My question: is there a way in python to hide the console window ?
(如您所见,我也在调整 chrome 窗口的大小,我的偏好是以用户不会注意到屏幕上发生的任何事情的方式做事)
(as you can see i'm also re-sizing the chrome window ,my preference would be doing things in a way the user wont notice anything happening on screen)
谢谢西万
推荐答案
您必须编辑 Selenium 源代码才能实现此目的.我也是菜鸟,我不完全理解编辑源代码的整体后果,但这是我在 Windows 7、Python 2.7 上隐藏 webdriver 控制台窗口所做的工作.
You will have to edit Selenium Source code to achieve this. I am a noob too, and I dont fully understand the overall consequences of editing source code but here is what I did to achieve hiding the webdriver console window on Windows 7, Python 2.7.
找到并编辑此文件,如下所示:位于Libsite-packagesseleniumwebdrivercommonservice.py 在您的 Python 文件夹中.
Locate and edit this file as follows: located at Libsite-packagesseleniumwebdrivercommonservice.py in your Python folder.
通过以下方式添加创建标志来编辑 Start() 函数:creationflags=CREATE_NO_WINDOW
Edit the Start() function by adding the creation flags this way: creationflags=CREATE_NO_WINDOW
修改后的方法如下:
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())
self.process = subprocess.Popen(cmd, env=self.env,
close_fds=platform.system() != 'Windows',
stdout=self.log_file, stderr=self.log_file, creationflags=CREATE_NO_WINDOW)
except TypeError:
raise
您必须添加相关的导入:
You will have to add the relevant imports:
from win32process import CREATE_NO_WINDOW
这也适用于 Chrome webdriver,因为它们导入相同的文件来启动 webdriver 进程.
This should also work for Chrome webdriver as they import the same file to start the webdriver process.
这篇关于在 python 中隐藏 chromeDriver 控制台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 python 中隐藏 chromeDriver 控制台
基础教程推荐
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 筛选NumPy数组 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01