有很多问题和各种各样的答案。问题是,在没有控制台窗口的Python进程中使用Selenium会导致它在新窗口中启动驱动程序(包括chromedriver)。
与其直接修改Selenium代码(尽管这最终需要完成),不如为它使用的ChromeWebDriver和Service类创建自己的子类。Service类是Selenium实际调用Popen来启动服务进程的地方,例如chromedriver.exe(如接受的答案中所述):import errno
import os
import platform
import subprocess
import sys
import time
import warnings
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common import utils
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
from selenium.webdriver.chrome import service, webdriver, remote_connection
class HiddenChromeService(service.Service):
def start(self):
try:
cmd = [self.path]
cmd.extend(self.command_line_args())
if platform.system() == 'Windows':
info = subprocess.STARTUPINFO()