我无法在Google Chrome浏览器中使用当前安装的扩展。有什么方法可以启用它们吗?
检查扩展是否有效的一个简单方法是添加扩展,例如"Comic Sans Everything"。
Google看起来是这样的:
但是,如果我使用headless模式(google-chrome --headless --disable-gpu --screenshot https://www.google.com
)对页面进行截图,则结果为:
我无法在Google Chrome浏览器中使用当前安装的扩展。有什么方法可以启用它们吗?
检查扩展是否有效的一个简单方法是添加扩展,例如"Comic Sans Everything"。
Google看起来是这样的:
但是,如果我使用headless模式(google-chrome --headless --disable-gpu --screenshot https://www.google.com
)对页面进行截图,则结果为:
7条答案
按热度按时间zqdjd7g91#
您可以使用Xvfb无外设运行Chrome扩展。
1.在Fedora
sudo dnf install xorg-x11-server-Xvfb
上安装Xvfb。xvfb-run google-chrome --remote-debugging-port=9222 --disable-gpu https://www.google.com
1.使用chrome-remote-interface(或其他Chrome调试协议客户端)触发屏幕截图。
更复杂,但它确实有效。这是我们用于Headless Chromium 扩展测试。
sgtfey8w2#
**编辑:**此答案不再正确,请参阅https://stackoverflow.com/a/73079789/934239
不,这是不可能的,由于任务的复杂性,Chrome开发人员决定在不久的将来不实施它。
如果你看这个问题,你可能会得到的想法,他们仍然在考虑它由于 chrome 驱动程序的要求-但相反,他们决定使 chrome 驱动程序的工作没有扩展(通过DevTools)。
dfty9e193#
你可以使用
pyvirtualdisplay
在你的服务器上运行chrome,最好的事情是你可以使用这个技巧来运行扩展。下面是我的实现:
您需要在服务器/计算机上安装
xvfb
:在我的AWS服务器上运行
vhmi4jdf4#
实际上现在可以用了,他们修好了。你可以用
工作起来很有魅力。https://bugs.chromium.org/p/chromium/issues/detail?id=706008#c36
wb1gzix05#
否,headless模式下的google-chrome尚不支持扩展。
skyos...@chromium.org
在他的评论中明确提到:我们决定暂时不以headless模式实现扩展支持,因为支持所有必需的特性相当复杂
您可以在为无头镶边添加扩展支持中找到完整的分析
eseckler@chromium.org
在他的评论中提到了真实的问题:1.许多扩展API是特定于非headless浏览器的,因此在headless chrome中不受支持。
1.在我们可以支持的API中,只有部分实现的方式使我们可以在headless chrome中重用它们。
1.改变这一点需要大量的重构,考虑到我们将获得的好处,这似乎是不合理的。
他又补充道:
无论哪种方式,由于(1)的原因,扩展都可能需要被修改以与headless chrome一起工作。所以即使我们解决了(2),大多数现有的扩展也将不兼容。(这也使得headless chrome不适合测试chrome扩展。)
扩展可以提供给headless chrome的大多数功能都可以通过headless向其用户公开的DevTools API实现。如果您有一个不受DevTools API支持的用例,请提交功能请求。
而且,在他的评论中,
alexclarke@chromium.org
明确提到:我意识到很多人都想使用headless的扩展,但不幸的是,这是一个大项目,我们没有/没有计划做/。问题是Headless Chromium是一个内容嵌入器,这意味着它不能访问其他内容嵌入器(如chrome)的任何内容,不幸的是,扩展是chrome的一个功能。
在另一条评论中,他进一步补充说,如果你通过DevTools使用Selenium,你可以构建一个代理。你可以通过Network.setRequestInterception和Network. continueInterceptedRequest过滤URL和修改头。
voase2hg6#
add_argument(“--headless=chrome”)可以正常工作
yv5phkfx7#
我还没试过但是看看这个
https://github.com/php-webdriver/php-webdriver/blob/2ed6645812603b20a7a249d4a66e286eb407300c/lib/Chrome/ChromeOptions.php#L83
phpdoc读取