如何停止使用 nuitka 独立编译的 selenium 可执行文件和启动 webdriver 终端的 onefile 可执行文件?

问题描述 投票:0回答:1

我构建了一个脚本,它以无头模式启动 selenium,并在使用 tkinter 制作的 GUI 上显示一些数据。但是当我编译它时,它启动了一个 webdriver 终端,我似乎无法在任何地方找到解决方案。

我使用的命令:

nuitka --onefile --windows-icon-from-ico=./assets/Icon.ico --plugin-enable=tk-inter --include-data-file=./assets/notification.mp3=. --include-package-data=selenium --mingw64 --standalone --disable-console Testpy

至于网络驱动程序,我在代码中这样使用它:

driver = webdriver.Chrome(options=cls.options)

我还没有尝试过使用 webdriver-manager,因为它需要很多时间来编译,因为我的电脑不太好,我无法一次又一次地编译它。

我已经四处寻找了一段时间,但没有发现任何关于这个问题的信息。

我已经尝试了一堆 nuitka 论点,但它们似乎都不起作用,而且我已经记不清我此时尝试过什么了。我尝试过使用 pyinstaller ,它几乎是一样的。我认为这与 webdriver 有关。

python python-3.x selenium-webdriver selenium-chromedriver webdriver
1个回答
0
投票

对于 Selenium 版本 4.12,除了以无头模式运行之外,您还可以使用创建标志强制程序不打开任何窗口。

chrome_service.creation_flags = CREATE_NO_WINDOW

然后您可以使用 log_output = os.devnull 来禁用日志记录(这可能是导致终端打开的原因)

这是我的 Firefox 代码,没有打开任何窗口/终端:

from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
options = webdriver.FirefoxOptions()
options.add_argument("--headless")

service = FirefoxService(log_output=os.devnull)
service.creation_flags = CREATE_NO_WINDOW
driver = webdriver.Firefox(service=service, options=options)
© www.soinside.com 2019 - 2024. All rights reserved.