【发布时间】:2020-05-19 15:57:07
【问题描述】:
设置
我们有一个 selenium 网格,其中所有节点都完全相同,除了一个。所有相同的节点都运行 Windows 10,具有基本的 chrome、IE、边缘浏览器,并在 MST 上运行。异常运行 IE、chrome 和 edge,但它们看起来像是在英国,并且一年中的大部分时间都运行 GMT+0(当然除了 DST,然后它运行 BST)。这会更改日期格式等,并用于测试日期格式是否正确以及我们系统上的文档是否反映了其所在时区的准确时间。 UK 节点上的浏览器都在其 node_XXXX.json 文件中为 selenium 网格声明了自定义浏览器版本。
问题
不久前我们失去了我们的中心服务器,重建后我们无法再让 IE、EDGE 和 Firefox 浏览器在英国服务器上运行。我们曾经为英国浏览器使用自定义浏览器版本,例如:而不是 "version":11 它是 "version":"11.eu" 表示我们想在特殊服务器上运行。 Chrome 可以在这个模型上正常工作。但是,IE 报错:
OpenQA.Selenium.WebDriverException : Error forwarding the new session cannot find : Capabilities {browserName: internet explorer, browserVersion: 11.eu, platformName: windows, se:ieOptions: {enablePersistentHover: true, ie.ensureCleanSession: true, nativeEvents: true}}
尝试的解决方案
我们已经尝试过更改版本号(它曾经说 9.eu,我们运行 IE9 时的遗留版本)。我们还尝试再次将 IE 更新到版本 11。没有任何工作或允许驱动程序连接。
问题
我们如何让我们的英国 IE 浏览器再次在 selenium 网格上工作?我们有许多测试失败只是因为它们无法连接到驱动程序实例。任何帮助将不胜感激,谢谢!
参考
作为参考,这里是我们的 node_XXXX.json 文件:
{
"capabilities": [
{
"seleniumProtocol": "WebDriver",
"browserName": "firefox",
"maxInstances": 1,
"version": "17.eu",
"platform": "WINDOWS"
},
{
"seleniumProtocol": "WebDriver",
"browserName": "internet explorer",
"maxInstances": 1,
"version": "11.eu",
"platform": "windows"
},
{
"seleniumProtocol": "WebDriver",
"browserName": "chrome",
"maxInstances": 1,
"version": "77.eu",
"platform": "WINDOWS"
}
],
"loadedFromFile":
"node_5555.json",
"proxy": "com.groupon.seleniumgridextras.grid.proxies.SetupTeardownProxy",
"servlets": [],
"maxSession": 3,
"port": 5555,
"register": true,
"unregisterIfStillDownAfter": 10000,
"hubPort": 4444,
"hubHost": "test-slum01.ndtest.local",
"registerCycle": 5000,
"nodeStatusCheckTimeout": 10000,
"custom": {},
"downPollingLimit": 0
}
这是调用远程网络驱动程序的代码:
case "iehta9UK":
var ieUkOptions = new InternetExplorerOptions();
ieUkOptions.EnsureCleanSession = true;
ieUkOptions.BrowserVersion = "11.eu";
return IS_REMOTE_RUN ? CreateRemoteWebDriver(ieUkOptions) : new InternetExplorerDriver(ieUkOptions);
这是运行良好的严格美国 IE 代码:
case "IE":
case "ie":
case "InternetExplorer":
case "iehta11":
var ieOptions = new InternetExplorerOptions();
ieOptions.EnsureCleanSession = true;
return IS_REMOTE_RUN ? CreateRemoteWebDriver(ieOptions) : new InternetExplorerDriver(ieOptions);
【问题讨论】:
标签: selenium testing internet-explorer selenium-grid