Selenium ChromeDriver:添加 chrome 扩展在 Grid 上不起作用
Selenium ChromeDriver: Adding chrome extension does not work on Grid
我正在尝试 运行 使用 Chrome 和 ModHeader 扩展对 selenium 网格进行测试。
使用 Florent B 在 chrome modify headers in selenium java, i am able to add extension .crx through script
中提供的解决方案,扩展在本地加载良好
但我无法找出扩展未加载到网格节点的原因。事实上,当 运行 执行以下代码时,浏览器甚至不会打开。
你能帮忙吗?以下代码供您参考。
此致,
普拉蒂克
private static RemoteWebDriver UseSeleniumGrid()
{
var path =
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName +
"\Local\Google\Chrome\User Data\Default\Extensions\idgpnmonknjnojddfkpgkljpfnnfcklj\extension_2_1_1.crx";
var options = new ChromeOptions();
options.AddExtension(Path.GetFullPath(path));
var capability = new DesiredCapabilities();
capability.SetCapability(ChromeOptions.Capability, options);
capability.SetCapability("browserName", "chrome");
return new CorrelatedDriver(
new Uri("http://localhost:4444/wd/hub"), capability, RemoteTimeout);
}
设法找到解决方案。
错误在行中:
var capability = new DesiredCapabilities();
capability.SetCapability(ChromeOptions.Capability, options);
根据 https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/7043 Chrome 选项无法在 SeleniumDriver 升级后以编程方式设置。解决方案是将选项转换为所需的功能。
下面的工作代码:
private static RemoteWebDriver UseSeleniumGrid()
{
var path =
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName +
"\Local\Google\Chrome\User Data\Default\Extensions\idgpnmonknjnojddfkpgkljpfnnfcklj\extension_2_1_1.crx";
var options = new ChromeOptions();
options.AddExtension(Path.GetFullPath(path));
var capability = options.ToCapabilities() as DesiredCapabilities;
capability.SetCapability("browserName", "chrome");
return new CorrelatedDriver(
new Uri("http://localhost:4444/wd/hub"), capability, RemoteTimeout);
}
我正在尝试 运行 使用 Chrome 和 ModHeader 扩展对 selenium 网格进行测试。
使用 Florent B 在 chrome modify headers in selenium java, i am able to add extension .crx through script
中提供的解决方案,扩展在本地加载良好但我无法找出扩展未加载到网格节点的原因。事实上,当 运行 执行以下代码时,浏览器甚至不会打开。
你能帮忙吗?以下代码供您参考。
此致, 普拉蒂克
private static RemoteWebDriver UseSeleniumGrid()
{
var path =
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName +
"\Local\Google\Chrome\User Data\Default\Extensions\idgpnmonknjnojddfkpgkljpfnnfcklj\extension_2_1_1.crx";
var options = new ChromeOptions();
options.AddExtension(Path.GetFullPath(path));
var capability = new DesiredCapabilities();
capability.SetCapability(ChromeOptions.Capability, options);
capability.SetCapability("browserName", "chrome");
return new CorrelatedDriver(
new Uri("http://localhost:4444/wd/hub"), capability, RemoteTimeout);
}
设法找到解决方案。
错误在行中:
var capability = new DesiredCapabilities();
capability.SetCapability(ChromeOptions.Capability, options);
根据 https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/7043 Chrome 选项无法在 SeleniumDriver 升级后以编程方式设置。解决方案是将选项转换为所需的功能。
下面的工作代码:
private static RemoteWebDriver UseSeleniumGrid()
{
var path =
Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName +
"\Local\Google\Chrome\User Data\Default\Extensions\idgpnmonknjnojddfkpgkljpfnnfcklj\extension_2_1_1.crx";
var options = new ChromeOptions();
options.AddExtension(Path.GetFullPath(path));
var capability = options.ToCapabilities() as DesiredCapabilities;
capability.SetCapability("browserName", "chrome");
return new CorrelatedDriver(
new Uri("http://localhost:4444/wd/hub"), capability, RemoteTimeout);
}