【问题标题】:Unavailable Selenium node for Internet ExplorerInternet Explorer 的 Selenium 节点不可用
【发布时间】:2015-03-11 15:55:48
【问题描述】:

这个问题让我抓狂。我会试着解释一下。

我有一个带有两台机器(HUB 和 NODE)的 Selenium 网格环境。我使用 .bat 文件来启动集线器和节点,类似于下面的代码: 集线器:

我在这里启动集线器:

start java -jar C:\workspace\selenium-server-standalone-2.45.0.jar  -role hub -port 4444

这里我在节点机器上启动一个 .bat 来启动节点。

psexec.exe \\XXX.XXX.XX.XXX -s -e -u USER -p PASSWORD -i 2 C:\Selenium\StartNode.bat

节点:

注册节点:

java -jar C:\selenium\selenium-server-standalone-2.45.0.jar -role node  -hub http://XXX.XXX.XX.XXX:4444/grid/register

我从一开始就有这个(或多或少 6 个飞蛾)并且很好很简单,但现在我看到了非常奇怪的东西(对我来说),但只在 Internet Explorer 中。基本上,节点启动,IE 打开到正确的页面,但没有任何反应。我只是有“找不到对象错误......” Firefox 和 Chrome 都很好。 但是,如果我直接在它上面启动节点(NODE 机器,所以不是从 HUB 通过 psexec),它也适用于 IE?

你们有什么合乎逻辑的解释吗?我真的不知道。

【问题讨论】:

    标签: selenium grid webdriver


    【解决方案1】:

    我想你需要在启动节点时提供 IEDriver exe,如下所示。

    java -jar selenium-server-standalone-2.45.0.jar -role webdriver -hub http://192.168.1.100:4444/grid/register -browser browserName="internet explorer",version=10.0,platform=WINDOWS -Dwebdriver.internetexplorer.driver=c:\Selenium\InternetExplorerDriver.exe
    

    【讨论】:

    • 我只是为 3 个浏览器使用一个节点,所以不要传递那个参数,但我检查了,它不起作用
    • 好吧,如果我查看浏览器它只是开始到正确的 www 但之后(有登录),我收到标准警告,如“org.openqa.selenium.InvalidSelectorException:xpath 表达式'.//*[@href='/application?appid=51' and @class='inner .popoverOption']' 无法评估或不会导致 WebElement”。但是,我刚刚看到日志有一条奇怪的消息用于 Internet Explorer。
    • org.openqa.grid.internal.BaseRemoteProxy - 尝试在节点主机上创建新会话:xxx.xxx.xx.xxx:5555 org.openqa.grid.internal.TestSlot - 尝试在测试槽上创建新会话{seleniumProtocol=WebDriver, platform=VISTA, browserName=internet explorer, maxInstances=1} rg.openqa.grid.selenium.proxy.DefaultRemoteProxy - 无法检查节点状态:连接到 xxx.xxx.xx.xxx:5555 [/ 192.168.10.117] 失败:连接被拒绝:连接
    • 好的。这并不意味着节点可用。您的问题标题具有误导性。 IE 上的 Xpath 很脆弱,因为 IE 没有本地 xpath 引擎,硒注入了它。你试过像 a.popoverOption 一样的 css
    【解决方案2】:

    尝试使用这样的命令创建节点: java -Dwebdriver.ie.driver=C:\selenium\IEDriverServer.exe -jar C:\selenium\selenium-server-standalone-2.45.0.jar -role node -nodeConfig C:\selenium\nodeIE1.json

    我用node代替webdriver(最后一个用于向后兼容)和最新版本的IEDriverServer

    它对我很有用。您可以尝试使用 nssm 将集线器和节点作为 win 服务运行,而不是使用 .bat 文件。

    【讨论】:

    • 事实是我没有改变任何东西,只是开始“不工作”
    • 它是否适用于之前版本的 selenium-server、selenium-java?例如。我今天遇到了 chromedriver 不适用于 selenium-java 2.45 的问题。我已经回滚到 44,它又开始工作了。
    • 它在 2.44 上运行良好,在 2.45 上运行了几天!太奇怪了:-(。试图恢复相同的东西,没办法。关键是,如果在集线器上启动集线器和在节点上启动节点(来自 .bat 文件)它可以工作,但是如果我从 .bat 文件启动节点和集线器。蝙蝠位于我的集线器上,它不起作用!真的无法解释
    • 要明确 - 您是否尝试从同一个 .bat 文件运行集线器和节点?
    • 在 HUB 上,我启动服务器,同时启动一个将启动节点的 .bat(位于节点上): HUB start java -jar C:\workspace\selenium-server-standalone -2.45.0.jar -role hub -port 4444 psexec.exe \\XXX.XXX.XX.XXX -s -e -u USER -p PASSWORD -i 2 C:\Selenium\StartNode.bat NODE java -jar C :\selenium\selenium-server-standalone-2.45.0.jar -role node -hub XXX.XXX.XX.XXX:4444/grid/register
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2015-12-04
    • 2014-08-24
    • 2023-03-19
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多