Setup
We have a selenium grid where all nodes are completely identical except one. All the identical nodes run windows 10, have basic chrome, IE, edge browsers, and run on MST. The exception runs IE, chrome, and edge, but they are set to look like it is in the UK, and runs GMT+0 most of the year (except DST of course then it runs BST). This changes date formats and such and is used to test that dates are formatted properly and that documents on our system reflect accurate times in their own timezone. The browsers on the UK node all have custom browser versions declared in their node_XXXX.json file for selenium grid.
Issue
We lost our hub server a while back, and after rebuilding we can no longer get the IE, EDGE, and Firefox browsers to work on the UK server. We used to use custom browser versions for the Uk browsers eg: instead of "version":11 it is "version":"11.eu" to denote that we wanted to run on the special server. Chrome works fine with this model. However, IE is giving an error:
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}}
Attempted Solutions
We have already tried to change the version number (It used to say 9.eu, legacy from when we were running IE9). We have also tried "updating" IE to version 11 again. Nothing has worked or allowed the driver to connect.
Question
How do we get our UK IE browser to work on the selenium grid again? We have many tests failing simply because they cannot connect to a driver instance. Any help would be appreciated, thanks!
Reference
For reference, here is our node_XXXX.json file:
{
"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
}
And this is the code that calls the remote web driver:
case "iehta9UK":
var ieUkOptions = new InternetExplorerOptions();
ieUkOptions.EnsureCleanSession = true;
ieUkOptions.BrowserVersion = "11.eu";
return IS_REMOTE_RUN ? CreateRemoteWebDriver(ieUkOptions) : new InternetExplorerDriver(ieUkOptions);
This is the strictly US IE code that works fine:
case "IE":
case "ie":
case "InternetExplorer":
case "iehta11":
var ieOptions = new InternetExplorerOptions();
ieOptions.EnsureCleanSession = true;
return IS_REMOTE_RUN ? CreateRemoteWebDriver(ieOptions) : new InternetExplorerDriver(ieOptions);
Aucun commentaire:
Enregistrer un commentaire