Selenium:会话外部密钥不可用 [英] Selenium: Session externalKey not available

查看:23
本文介绍了Selenium:会话外部密钥不可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当Robot Framework自动化测试(由Jenkins作业启动)从集线器请求Chrome浏览器时,我正在运行的Selenium Grid Hub都会显示此错误消息:

会话[(Null Outalkey)]不可用,并且不在最后几个会话中 1000个已终止的会话。

我花了几个小时搜索和尝试建议的解决方案,但一无所获。

将Linux服务器作为Selenium Grid Hub运行,将Windows服务器作为Selenium Grid Node运行。我使用版本3.0.1、3.5.3、3.13.0和3.141.59的selenium-server-standalone-<version>.jar文件测试了每个节点。第三台服务器运行Jenkins。

集线器似乎配置正确,因为它工作正常:

http://10.1.10.231:4444/grid/console

我还在命令行运行了JAR文件,末尾带有-debug,但没有显示进一步的信息。我还在命令行的"java端"尝试了-Dselenium.LOGGER.level=WARNING,除了使用-debug之外,没有显示更多信息。

我们有另一组具有相同配置的服务器,运行正常。

有人知道这封邮件是什么意思吗?


紧随其后的是细节。

网格中心:

java -jar -Xms1024m -Xmx2048m selenium-server-standalone-3.141.59.jar -role hub -hubConfig ./hub-config.json

Hub-config.json:

{
  "port": 4444,
  "newSessionWaitTimeout": -1,
  "servlets" : [],
  "withoutServlets": [],
  "custom": {},
  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
  "throwOnCapabilityNotPresent": true,
  "cleanUpCycle": 5000,
  "role": "hub",
  "debug": false,
  "browserTimeout": 360,
  "timeout": 1800
}

网格节点:

SET CHROMEDRIVER=.inchromedriver_win32-v2.37chromedriver.exe
SET IEDRIVER=.inIEDriverServer.exe
SET FFDRIVER=.ingeckodriver-v0.11.1-win32geckodriver.exe

START "SeleniumNode" java -Xms1024m -Xmx2048m ^
    -Dwebdriver.gecko.driver=%FFDRIVER% ^
    -Dwebdriver.ie.driver=%IEDRIVER% ^
    -Dwebdriver.chrome.driver=%CHROMEDRIVER% -Dwebdriver.chrome.args="--disable-extensions" ^
    -jar .inselenium-server-standalone-3.141.59.jar -role node -nodeConfig .
ode-config.json

node-config.json:

{
  "capabilities":
  [
    {
      "browserName": "firefox",
      "maxInstances": 5,
      "platform": "WINDOWS",
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "chrome",
      "maxInstances": 5,
      "platform": "WINDOWS",
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "internet explorer",
      "maxInstances": 5,
      "platform": "WINDOWS",
      "seleniumProtocol": "WebDriver"
    }
  ],
  "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
  "maxSession": 5,
  "port": 5555,
  "register": true,
  "registerCycle": 5000,
  "hub": "http://10.1.10.231:4444",
  "nodeStatusCheckTimeout": 5000,
  "nodePolling": 5000,
  "role": "node",
  "unregisterIfStillDownAfter": 60000,
  "downPollingLimit": 2,
  "debug": false,
  "servlets" : [],
  "withoutServlets": [],
  "custom": {},
  "browserTimeout": 0,
  "timeout": 1800,
  "cleanUpCycle": 2000
}

推荐答案

解决了这个问题!希望它能帮助报告此错误消息但未收到解决方案的其他人。

就像这种问题最常见的情况一样,特别是当在损坏的实例旁边有已知工作正常的设置时,这是一个(令人尴尬的)愚蠢的配置问题。Robot测试指向此URL以获取浏览器:

http://10.1.10.75:4444/wd/hub/static/resource/hub.html

并且它应该指向此路径:

http://10.1.10.75:4444/wd/hub

至少这是一个简单的修复方法。

这篇关于Selenium:会话外部密钥不可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆