【发布时间】:2023-01-27 18:48:22
【问题描述】:
这是我的 C# 代码。当我运行它时,它以无头模式启动,但它似乎与 Chrome 扩展有关。
[Test]
public async Task Start()
{
var chromeDriverService = ChromeDriverService.CreateDefaultService();
var option = new ChromeOptions();
option.AddExtension(MainPageElements.extensionPath);
option.AddArguments("headless");
using (var browser = new ChromeDriver(option))
{
WebDriver webDriver = new ChromeDriver(chromeDriverService, option);
webDriver.Manage().Window.Maximize();
//more code
}
}
这是我运行时遇到的错误:
OpenQA.Selenium.WebDriverException:未知错误:无法等待扩展后台页面加载:chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.html 来自未知错误:找不到页面:chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/background.html
扩展名是 MetaMask。这是一个加密钱包。
加载此 Chrome 扩展程序时可能根本无法使用无头模式,因为它会打开自己的新弹出窗口...
编辑:ChromeDriver 版本 - 108.0.5359.7100
【问题讨论】:
-
chromedriver 的版本?尝试使用
option.AddArguments(--headless=chrome),如果它不适用于option.AddArguments(--headless=new)。来源bugs.chromium.org/p/chromium/issues/detail?id=706008#c36 -
ChromeDriver 版本 - 108.0.5359.7100。但是当我尝试 option.AddArguments(--headless=chrome) 或 option.AddArguments(--headless=new) 时,它会在它下面加下划线并说“当前上下文中不存在名称‘headless’”。我试过option.AddArguments("--headless=new"),但是好像需要没有"",对吧?我做错了什么?
-
对不起,我忘记了
",你必须把它们放在option.AddArguments("--headless=chrome") -
谢谢,我成功了。但是 option.AddArguments("--headless=new") 需要在 option.AddExtension(MainPageElements.extensionPath) 之前;
-
好的!我在解决方案中添加了一个答案,因此如果问题得到解决,请考虑将答案标记为已接受,以便问题得到解决状态
标签: c# selenium google-chrome-extension headless-browser