C# 使用Coypu禁用Chrome自动化扩展

C# 使用Coypu禁用Chrome自动化扩展,c#,selenium,google-chrome,coypu,C#,Selenium,Google Chrome,Coypu,我正在尝试使用Selenium包装器创建一个自动化测试框架:Coypu。当我尝试运行一个自动UI测试时,我得到一个错误:“未能从以下位置加载扩展名:(文件路径位于此处)。管理员禁用加载未打包的扩展名。” 问题似乎在于我的组织没有将Chrome的自动化扩展列入白名单。我在网上找到的所有修复建议通过执行以下操作禁用selenium webdriver的chrome扩展: ChromeOptions options = new ChromeOptions(); options.AddAdditiona

我正在尝试使用Selenium包装器创建一个自动化测试框架:Coypu。当我尝试运行一个自动UI测试时,我得到一个错误:“未能从以下位置加载扩展名:(文件路径位于此处)。管理员禁用加载未打包的扩展名。”

问题似乎在于我的组织没有将Chrome的自动化扩展列入白名单。我在网上找到的所有修复建议通过执行以下操作禁用selenium webdriver的chrome扩展:

ChromeOptions options = new ChromeOptions();
options.AddAdditionalCapability("useAutomationExtension", false);
ChromeDriver driver = new ChromeDriver(options: options);
下面是我设置coypu浏览器会话的代码:

SessionConfiguration sessionConfig = new SessionConfiguration();
sessionConfig.Browser = Coypu.Drivers.Browser.Chrome;
sessionConfig.Timeout = TimeSpan.FromSeconds(30);
sessionConfig.RetryInterval = TimeSpan.FromSeconds(0.5);
//Browser is a static object that wraps a thread mapped dictionary of browserSessions.
//the start method adds a browser session to the Browser object's dictionary
Browser.Start(sessionConfig);
string DevEnviromentUrl = System.Configuration.ConfigurationManager.AppSettings["Dev"];
Browser.Visit(DevEnviromentUrl);



如何在coypu中禁用自动化扩展?

我以前遇到过这个问题,唯一真正的方法是从管理层获得权限,以便为从事自动化工作的用户允许扩展

唯一的另一个方法是降级没有扩展的chrome和驱动程序版本(我不建议这样做)

试试类似的方法

public class CustomChromeOptionsSeleniumWebDriver : SeleniumWebDriver
{
    public CustomChromeOptionsSeleniumWebDriver(Browser browser)
        : base(CustomProfile(), browser) {}

    private static RemoteWebDriver CustomChromeOptions()
    {
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.AddArguments("start-maximized");
        chromeOptions.AddArguments("--disable-extensions");
        chromeOptions.AddArguments("useAutomationExtension", false);

        return new ChromeDriver(chromeOptions);
    }
}

[SetUp]
public void SetUp()
{       
    var configuration = new SessionConfiguration
    {
        Timeout = TimeSpan.FromMilliseconds(2000),
        Driver = typeof(CustomChromeOptionsSeleniumWebDriver),
        Browser = Browser.Chrome,
    };
    browser = new BrowserSession(configuration);
}