gpt4 book ai didi

python - 如何隐藏 Chromedriver 控制台窗口?

转载 作者:太空宇宙 更新时间:2023-11-04 10:31:56 51 4
gpt4 key购买 nike

我有一个简单的 Python 脚本,它使用 selenium 和 webdriver 在 Chrome 窗口中打开 Facebook 并自动登录。当我运行它时,Chromedriver 控制台窗口会打开并在整个程序执行完毕后保持打开状态,直到我自己将其关闭。

有没有办法隐藏这个控制台窗口?我曾尝试为我的脚本保留“.pyw”扩展名,但这无济于事,因为我希望隐藏的不是脚本的控制台窗口,而是 Chromedriver 子进程的控制台窗口。

我找不到这方面的任何资源。我想我可能需要修改 chrome webdriver 源代码,但我不知道如何修改。这是我的代码:

from selenium import webdriver
import sys

driver = webdriver.Chrome("C:\Python27\Scripts\chromedriver.exe")

driver.get("https://www.facebook.com")

email = driver.find_element_by_id("email")
passwd = driver.find_element_by_id("pass")

email.clear()
passwd.clear()

email.send_keys("example@example.com")
passwd.send_keys("examplepassword")

passwd.submit()

最佳答案

为了隐藏 webdriver 控制台窗口,我必须编辑 Lib\site-packages\selenium\webdriver\common\services.py,但我使用的是 PhantomJS。 PhantomJS 导入并使用这个文件来启动它的进程。基本上,我将以下创建标志添加到 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())
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` in bold.

同时将这一行添加到导入 from win32process import CREATE_NO_WINDOW

这应该也适用于 Chrome webdriver,因为它的 service.py 也导入了这个完全相同的文件,尽管我没有时间尝试。

关于python - 如何隐藏 Chromedriver 控制台窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25871898/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com