即使以无头方式执行后,Selenium Chromedriver.exe 仍继续显示终端黑屏
我正在尝试使用 Python 中的 Selenium 自动化网站流程。我正在使用 ChromeDriverManager 在执行程序时安装正确版本的 Chrome 驱动程序。我有一个 GUI 程序,它通过命令行参数调用我的 Selenium 程序。我的目标是在没有 chromedriver.exe 任何额外弹出窗口的情况下执行该程序。我有以下代码:
op = webdriver.ChromeOptions()
op.ignore_zoom_level = True
op.add_argument('headless')
op.add_argument('disable-gpu')
op.add_argument('disable-infobars')
op.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(ChromeDriverManager().install(), options=op, service_args=['CREATE_NO_WINDOW'])
当我通过脚本运行此代码时,我看不到 chromedriver.exe 中的任何窗口,但是,当我通过 pyinstaller 导出到 EXE 包时,会弹出 chromedriver.exe 窗口: 终端 IMG
如何禁止 chromedriver.exe 弹出此终端窗口?
澄清一下,这不是终端中出现的主程序的问题。当主程序执行chromedriver.exe时出现问题。
I am attempting to automate a website process with Selenium in Python. I am using ChromeDriverManager to install the correct version of Chrome driver upon the execution of my program. I have a GUI program that calls my Selenium program via command-line arguments. My goal is to execute this program without any extra pop-ups from chromedriver.exe. I have the following code:
op = webdriver.ChromeOptions()
op.ignore_zoom_level = True
op.add_argument('headless')
op.add_argument('disable-gpu')
op.add_argument('disable-infobars')
op.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(ChromeDriverManager().install(), options=op, service_args=['CREATE_NO_WINDOW'])
When I run this code via script I see no windows from chromedriver.exe, however, when I export to EXE package via pyinstaller a chromedriver.exe window pops up:
Terminal IMG
How do I disable this terminal window from chromedriver.exe from popping up?
To clarify this is not an issue with the main program appearing in the terminal. It is an issue when the main program executes chromedriver.exe.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您错误地将参数传递给 ChromeOptions。所有参数中都缺少
--
。请尝试这个:
You are passing arguments to ChromeOptions wrongly. You are missing
--
in all the arguments.Please try this:
经过进一步研究,我找到了该问题的解决方案。我添加了一个服务创建标志CREATE_NO_WINDOW,这解决了问题。代码变更参考如下:
Upon additional research, I found a solution to the issue. I added a service creation flag CREATE_NO_WINDOW and this solved the issue. Code change reference below:
无法使用 CREATE_NO_WINDOW 隐藏 Chromedriver 控制台
仅 CREATE_NO_WINDOW 有效使用硒 4.5.0 和
不适用于更高版本
Unable to hide Chromedriver console with CREATE_NO_WINDOW
CREATE_NO_WINDOW only works with selenium 4.5.0 and
doesn't work with higher version
对我来说,
CREATE_NO_WINDOW
没有提供任何信息,因此我使用过滤器创建了一个任务终止程序,仅停止chromedriver.exe
窗口For me
CREATE_NO_WINDOW
gave nothing so I made a taskkill with filters to stop only thechromedriver.exe
window