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