Google chrome 有可能在无头模式下运行Google Chrome和扩展吗?
我无法在Google Chrome中使用无头模式使用当前安装的扩展。有什么方法可以使它们成为可能吗 检查扩展是否有效的一种简单方法是添加扩展,例如“” 所以谷歌看起来是这样的: 但是,如果我使用headless模式(Google chrome 有可能在无头模式下运行Google Chrome和扩展吗?,google-chrome,google-chrome-extension,google-chrome-headless,headless,Google Chrome,Google Chrome Extension,Google Chrome Headless,Headless,我无法在Google Chrome中使用无头模式使用当前安装的扩展。有什么方法可以使它们成为可能吗 检查扩展是否有效的一种简单方法是添加扩展,例如“” 所以谷歌看起来是这样的: 但是,如果我使用headless模式(googlechrome--headless--disable-gpu--screenshot)截取页面的屏幕截图https://www.google.com),结果是: 不,这是不可能的,而Chrome开发者由于任务的复杂性 如果你看到这个问题,你可能会觉得他们仍然在考虑Chro
googlechrome--headless--disable-gpu--screenshot)截取页面的屏幕截图https://www.google.com
),结果是:
不,这是不可能的,而Chrome开发者由于任务的复杂性
如果你看到这个问题,你可能会觉得他们仍然在考虑ChromeDriver的要求,但是他们决定让ChromeDriver在没有扩展的情况下工作(通过DevTools)。你可以使用无头扩展运行Chrome
xvfb运行google chrome——远程调试端口=9222——禁用gpuhttps://www.google.com
更复杂,但它确实有效。这是我们用于无头chrome扩展测试的工具。您可以使用
pyvirtualdisplay
在服务器上以零显示运行chrome。最好的情况是,您可以使用此技巧运行扩展
以下是我的实现:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
chrome_options = Options()
chrome_options.add_extension("proxy.zip")
driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', chrome_options=chrome_options)
time.sleep(3)
driver.get("https://ipinfo.io/json")
print(driver.page_source)
driver.close()
display.stop()
您需要在服务器/计算机上安装xvfb
:
sudo apt install -y xvfb
pip install pyvirtualdisplay
在我的AWS服务器上运行它
使用chrome how to headless的其他可能性是-headless chrome Node.js API否,in模式还不支持扩展
skyos…@chromium.org
在他的文章中明确提到:
我们决定暂时不在headless模式下实现扩展支持,因为支持所有必需的特性相当复杂
您可以在中找到完整的分析
eseckler@chromium.org
在他的报告中提到了以下实时问题:
在另一篇文章中,他进一步补充道,如果你使用through,你可以构建一个代理。您可以通过和过滤URL和修改标题。目前不可能,请参阅相关:-尽管它无法无头工作。无头模式将来是否支持扩展?有没有其他的网络浏览器支持无头模式和扩展?是的,firefox支持。这是一个糟糕的缺失功能。只是澄清一下:此解决方案不使用Chrome内置的“无头”模式,而是在虚拟显示器上呈现Chrome。谢谢
xvfb run
也可以在不带远程调试选项的情况下使用Selenium,例如:xvfb run--server args=“-screen 0 1920x1080x24”python run Selenium.py
。看,既然木偶演员只使用chrome,它并没有扩展它,它不能做比chrome更多的事情。