c# - System.InvalidOperationException:转发新会话时出错,找不到:Capabilities {browserName:chrome,marionette:false}
问题描述
我正在尝试Selenium
使用Grid
.
当我运行测试时,我收到错误:
Message: System.InvalidOperationException : Error forwarding the new session cannot find : Capabilities {browserName: chrome, marionette: false, platform: WINDOWS}
我chromedriver.exe
在以下目录中:
F:\Selenium Projects\C#\Grid practice\automation\
我已将环境变量的路径从系统、控制面板设置为路径:
F:\Selenium Projects\C#\Grid practice\automation\
我的代码片段是:
public class Browsers : DriverClass
{
public IWebDriver LaunchBrowser(string browser)
{
switch (browser)
{
case "chrome":
GoToChromeBrowser("chrome");
break;
case "firefox":
GoToFirefoxBrowser();
break;
case "ie":
GoToIeBrowser();
break;
case "edge":
GoToEdgeBrowser();
break;
case "remote":
GoToRemoteBrowser();
break;
default:
throw new Exception("did not find browser type selected");
}
return Driver;
}
}
方法GoToChromeBrowser()
:
public void GoToChromeBrowser(string BrowserType)
{
switch (BrowserType)
{
case "firefox":
Driver = new FirefoxDriver();
break;
case "chrome":
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability(CapabilityType.BrowserName, "chrome");
cap.SetCapability("marionette", false);
cap.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));
Driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), cap);
break;
}
}
要启动集线器,我使用 CMD 中的命令:
java -jar F:\Selenium\Server\selenium-server-standalone-3.11.0.jar -role hub
要注册节点,我使用以下命令:
java -jar selenium-server-standalone-3.11.0.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome version=ANY, maxInstances=5, platform=WINDOWS" -port 5566
集线器已正常启动,并且已注册节点。那里没有错误。
为什么我在 Visual Studio 中运行测试时收到错误消息?
我错过了什么或做错了什么?
解决方案
试试这个。在启动节点时指定驱动程序的位置。
java -Dwebdriver.chrome.driver=D:/nchaurasia/Automation-Architect/connect2tech.in-SeleniumWebDriver3.x_2/driver/chromedriver.exe -jar selenium-server-standalone-3.9.1.jar -role node -hub http://192.168.137.1:4444/grid/register/
推荐阅读
- amazon-web-services - AWS Secret Manager - 在仅设置特定委托人列表时授予所有人访问权限
- git - 通过 git 在 repo 和服务器之间自动同步,忽略但不从源中删除 .gitignore 中的文件
- java - 启用 MethodSecurityInterceptor 以发布 AuthorizedEvent
- android - Why Robo tests gets marked as passed so quickly?
- python - 为图像添加透明填充
- azure - Azure 数据工厂如果条件未按预期工作
- javascript - 如何等待函数在javascript中完成?
- plasticscm - 在 Plastic SCM 中,是否有合并 Oracle Forms 二进制文件的选项或工具?
- swift - MapKit 聚类在开始时没有正确聚类,它在平移后聚类
- azure - 如何升级 Helm Chart