1

我正在尝试使用 Selenium Wrapper: 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 中的自动化扩展?

4

2 回答 2

1

尝试类似的东西

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);
}
于 2019-10-07T20:45:21.007 回答
0

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

唯一的另一个是降级没有扩展的chrome和驱动程序版本(我不推荐)

于 2019-10-07T20:38:55.003 回答