var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
var driver = new ChromeDriver(driverService, new ChromeOptions());
有可能在Python中实现这一点吗?我已尝试在StackoverFlow和外部发布的所有可能的修复程序,但是当我运行.exe时,没有任何内容,cmd也会出现。
Python 3.6,最新的Selenium版本(3.9)。
答案 0 :(得分:2)
我找到了在python中复制上述代码的方法(或多或少) 使用此fix 作为我灵感的基础。
经过几个小时的挣扎(也是非常糟糕的话),我在github上制作了这个commit,现在可以通过代码轻松改变控制台提示行为。 我将尽力在官方消息来源提供。希望它会让你节省时间和耐心。
找到 service.py ,通常位于“X:\ YourPythonFold \ Lib \ site-packages \ selenium \ webdriver \ common \ service.py”
替换这些行(大约n- 72-76,低于start method def):
self.process = subprocess.Popen(cmd, env=self.env,
close_fds=platform.system() != 'Windows',
stdout=self.log_file,
stderr=self.log_file,
stdin=PIPE)
与
if any("hide_console" in arg for arg in self.command_line_args()):
self.process = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, creationflags=0x08000000)
else:
self.process = subprocess.Popen(cmd, env=self.env, close_fds=platform.system() != 'Windows', stdout=self.log_file, stderr=self.log_file, stdin=PIPE)
最后在您的代码中,当您设置驱动程序时(我选择Chrome作为示例):
args = ["hide_console", ]
driver = webdriver.Chrome("your-path-to-chromedriver.exe", service_args=args, ...)
编辑源代码时,请注意PEP! 不使用标签,只是空格!
答案 1 :(得分:0)
我找到了解决此问题的方法:不要使用-w
或--Windowed
pyinstaller选项。换句话说,执行以下操作:
pyinstaller --onefile "main.py"
不是这个:
pyinstaller --onefile -w "main.py"
是的,您将在开始时看到一个命令窗口,但不会在每次调用geckodriver.exe时弹出该窗口。我在用Firefox挣扎,因此是geckodriver.exe