我试图用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窗口:Terminal IMG
如何禁用chromedriver.exe弹出的此终端窗口?
要澄清的是,这不是出现在终端中的主程序的问题。当主程序执行chromedriver.exe时,这是一个问题。
5条答案
按热度按时间tjrkku2a1#
您错误地将参数传递给ChromeOptions。所有参数中均缺少
--
。请尝试以下操作:
字符串
oug3syen2#
经过进一步的研究,我找到了解决这个问题的办法。我添加了一个服务创建标志 CREATE_NO_WINDOW,这解决了这个问题。代码变更参考如下:
字符串
5jdjgkvh3#
Unable to hide Chromedriver console with CREATE_NO_WINDOW
字符串
CREATE_NO_WINDOW仅适用于selenium 4.5.0,不适用于更高版本
huus2vyu4#
对我来说,
CREATE_NO_WINDOW
没有给出任何信息,所以我使用过滤器执行了一个taskkill,只停止chromedriver.exe
窗口字符串
2hh7jdfx5#
字符串