无法在网格中启动 Selenium 脚本
unable to Launch Selenium Script in Grid
我已经通过 运行ning 命令启动了 selenium 服务器集线器:
java -jar selenium-server-standalone-3.4.jar -port 4444 -role hub
我还通过 运行ning 命令连接了节点:java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580
在网格控制台中显示 v:null(不知道为什么?)。
我正在 运行 编写下面的代码到 运行 selenium :
public static void main(String[] args) throws MalformedURLException, InterruptedException{
String URL = "http://www.DemoQA.com";
String Node = "http://localhost:4444/wd/hub";
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setBrowserName("firefox");
cap.setPlatform(Platform.WIN10);
driver = new RemoteWebDriver(new URL(Node), cap);
driver.navigate().to(URL);
Thread.sleep(5000);
driver.quit();
}
`
gettinf 这些错误,请有人帮忙解决这些问题?
非常感谢 adc
错误消息 Error forwarding the new session cannot find
是网格告诉您无论您请求什么,集线器都找不到支持该功能的任何节点的方式。
在你的情况下,当你这样做时
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setBrowserName("firefox");
cap.setPlatform(Platform.WIN10);
您基本上是在告诉集线器您需要一个可以支持名称为 firefox
的浏览器的节点,并且该节点在 Windows 10 操作系统上应该是 运行 .
但是在你的节点启动命令中,你使用了这个
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580
这意味着您在 Hub 上注册了一个支持 firefox 浏览器的节点,但您从未提及该平台的任何内容。所以节点假设平台是"any".
现在,当您创建一个新的 RemoteWebDriver
实例时,集线器会尝试将请求的功能与每个节点的可用功能相匹配。由于没有找到任何运行在Windows10 上且支持firefox 的节点(记住你只有一个支持firefox 的节点且未设置其平台),因此匹配失败,因为"ANY" 不是a匹配 "WIN10".
要解决此问题,请删除行 cap.setPlatform(Platform.WIN10);
并重试。
PS :
DesiredCapabilities cap = DesiredCapabilities.firefox();
行已经确定了浏览器名称,因此您无需通过 cap.setBrowserName("firefox");
显式设置浏览器名称
网格控制台显示没有 Firefox 实例是您遇到的问题。您的节点似乎有问题。
检查节点注册命令。
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser browserName=firefox,platform=WINDOWS,maxInstances=2
尝试删除命令中 browserName
之前的 -
。
我已经通过 运行ning 命令启动了 selenium 服务器集线器:
java -jar selenium-server-standalone-3.4.jar -port 4444 -role hub
我还通过 运行ning 命令连接了节点:java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580
在网格控制台中显示 v:null(不知道为什么?)。
我正在 运行 编写下面的代码到 运行 selenium :
public static void main(String[] args) throws MalformedURLException, InterruptedException{
String URL = "http://www.DemoQA.com";
String Node = "http://localhost:4444/wd/hub";
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setBrowserName("firefox");
cap.setPlatform(Platform.WIN10);
driver = new RemoteWebDriver(new URL(Node), cap);
driver.navigate().to(URL);
Thread.sleep(5000);
driver.quit();
}
`
gettinf 这些错误,请有人帮忙解决这些问题?
非常感谢 adc
错误消息 Error forwarding the new session cannot find
是网格告诉您无论您请求什么,集线器都找不到支持该功能的任何节点的方式。
在你的情况下,当你这样做时
DesiredCapabilities cap = DesiredCapabilities.firefox();
cap.setBrowserName("firefox");
cap.setPlatform(Platform.WIN10);
您基本上是在告诉集线器您需要一个可以支持名称为 firefox
的浏览器的节点,并且该节点在 Windows 10 操作系统上应该是 运行 .
但是在你的节点启动命令中,你使用了这个
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser -browserName=firefox -port 5580
这意味着您在 Hub 上注册了一个支持 firefox 浏览器的节点,但您从未提及该平台的任何内容。所以节点假设平台是"any".
现在,当您创建一个新的 RemoteWebDriver
实例时,集线器会尝试将请求的功能与每个节点的可用功能相匹配。由于没有找到任何运行在Windows10 上且支持firefox 的节点(记住你只有一个支持firefox 的节点且未设置其平台),因此匹配失败,因为"ANY" 不是a匹配 "WIN10".
要解决此问题,请删除行 cap.setPlatform(Platform.WIN10);
并重试。
PS :
DesiredCapabilities cap = DesiredCapabilities.firefox();
行已经确定了浏览器名称,因此您无需通过 cap.setBrowserName("firefox");
网格控制台显示没有 Firefox 实例是您遇到的问题。您的节点似乎有问题。
检查节点注册命令。
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register/ -browser browserName=firefox,platform=WINDOWS,maxInstances=2
尝试删除命令中 browserName
之前的 -
。