【发布时间】:2020-06-17 22:36:01
【问题描述】:
我正在使用 selenium 来抓取数据的项目,但我不希望浏览器打开并弹出。我只是想隐藏浏览器,也不想在任务栏中显示它......
有些人还建议使用 phantomJS,但我没有得到它们。现在该怎么办...
【问题讨论】:
-
使用 selenium,您可以将浏览器的选项设置为无头
标签: python python-3.x selenium selenium-webdriver
我正在使用 selenium 来抓取数据的项目,但我不希望浏览器打开并弹出。我只是想隐藏浏览器,也不想在任务栏中显示它......
有些人还建议使用 phantomJS,但我没有得到它们。现在该怎么办...
【问题讨论】:
标签: python python-3.x selenium selenium-webdriver
如果您使用的是 Chrome,您可以像这样设置 headless 参数:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
driver_exe = 'chromedriver'
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(driver_exe, options=options)
【讨论】:
要在使用Selenium 的python 执行测试时隐藏浏览器,您可以使用minimize_window() 方法,该方法最终将Chrome 浏览上下文 有效地最小化/推送到后台,使用以下命令解决方案:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://www.google.co.in')
driver.minimize_window()
作为替代方案,您可以使用 headless 属性来配置 ChromeDriver 以使用 Selenium 在 Headless 模式下启动 google-chrome 浏览器,您可以找到几个相关的讨论:
【讨论】:
对于 chrome,您可以传入 --headless 参数。
或者,您可以让 selenium 在这样的虚拟显示器上工作:
from selenium import webdriver
from xvfbwrapper import Xvfb
display = Xvfb()
display.start()
driver = webdriver.Chrome()
driver.get('http://www.stackoverflow.com')
print(driver.title)
driver.quit()
display.stop()
后者对我很有效。
【讨论】:
如果您使用的是 Firefox,请尝试以下操作:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
driver_exe = 'path/to/firefoxdriver'
options = Options()
options.add_argument("--headless")
driver = webdriver.Firefox(driver_exe, options=options)
类似于@Meshi 在 Chrome 中的回答
【讨论】: