Riaz Ladhani
Riaz Ladhani

Reputation: 4072

Selenium Grid WebDriver Unable to create new remote session desired capabilities

I am trying out Selenium Grid. My tests are written in Selenium Python. I have started the Grid hub on my local machine, I have registered the node for IE using a json file on the same machine. I run a selenium sample test and I get the following error:

Unable to create new remote session desired capabilities

Full error trace:

    Traceback (most recent call last):
  File "E:\RL Fusion\projects\Selenium Grid\Selenium Grid Sample\Test1 working - try json config file 2\Test1.py", line 21, in setUp
    desired_capabilities=desired_cap)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 89, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 138, in start_session
    'desiredCapabilities': desired_capabilities,
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 195, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 170, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: Unable to create new remote session. desired capabilities = Capabilities [{browserName=internet explorer, javascriptEnabled=true, platform=WINDOWS}], required capabilities = null
Build info: version: '3.0.0-beta3', revision: 'c7b525d', time: '2016-09-01 14:57:03 -0700'
System info: host: 'OptimusPrime-PC', ip: '192.168.0.2', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_31'
Driver info: driver.version: InternetExplorerDriver
Stacktrace:
    at org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHandshake.java:80)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute (DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:597)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession (RemoteWebDriver.java:242)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession (RemoteWebDriver.java:228)
    at org.openqa.selenium.ie.InternetExplorerDriver.run (InternetExplorerDriver.java:180)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init> (InternetExplorerDriver.java:172)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init> (InternetExplorerDriver.java:148)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (None:-2)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance (None:-1)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (None:-1)
    at java.lang.reflect.Constructor.newInstance (None:-1)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor (DefaultDriverProvider.java:103)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance (DefaultDriverProvider.java:97)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance (DefaultDriverFactory.java:60)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call (DefaultSession.java:222)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call (DefaultSession.java:209)
    at java.util.concurrent.FutureTask.run (None:-1)
    at org.openqa.selenium.remote.server.DefaultSession$1.run (DefaultSession.java:176)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (None:-1)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (None:-1)
    at java.lang.Thread.run (None:-1)

json.cfg.json config implementation:

    {
  "class": "org.openqa.grid.common.RegistrationRequest",
  "capabilities": [
    {
      "seleniumProtocol": "WebDriver",
      "browserName": "internet explorer",
      "version": "11",
      "maxInstances": 1,
      "platform" : "WIN7"   }
    ],
    "configuration" : {
      "port": 5555,
      "register": true,
      "host": "192.168.0.6",
      "proxy": "org.openqa.grid.selenium.proxy.   DefaultRemoteProxy",
      "maxSession": 2,
      "hubHost": "192.168.0.6",
      "role": "webdriver",
      "registerCycle": 5000,
      "hub": "http://192.168.0.6:4444/grid/register",
      "hubPort": 4444,
      "remoteHost": "http://localhost:4444"
    }
}

the setup method in my Selenium Python file is:

def setUp(self):
        desired_cap = {'browserName': 'internet explorer',
        #'platform': 'WIN8_1',
        'platform': 'WIN7',
        'javascriptEnabled': True}


    self.driver = webdriver.Remote(
        command_executor='http://localhost:4444/wd/hub',
        desired_capabilities=desired_cap)

What am i doing wrong? Is my desired Capabilities not configured properly? I notice in the full trace log it says Win 8.1
I have mentioned Win7 for the platform. I do not know why it is trying for Win 8.1

I have now changed desired capabilities to the following:

desired_cap = {'browserName': 'internet explorer',
        'platform': 'windows',
        'javascriptEnabled': True,
'InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS': True
}

I now get the error:

WebDriverException: Message: Error forwarding the new session cannot find : Capabilities [{browserName=internet explorer, InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS=true, javascriptEnabled=true, platform=XP}]

I need some help please. Thanks, Riaz

Upvotes: 1

Views: 4753

Answers (2)

sleod
sleod

Reputation: 11

Just keep the setting for Security of IE with middle (middle to high) and enable protected Mode for all.

Then issue got resolved.

Upvotes: 1

Krishnan Mahadevan
Krishnan Mahadevan

Reputation: 14746

The Grid uses the below three attributes in its DefaultCapabilitiesMatcher to decide on which node should a new session request be routed to :

  1. Platform
  2. BrowserType
  3. Browser version

In your case, based on what you changed, your test is requesting that a node that has IE running on Windows, but in your nodeConfig.json you have basically specified "WIN7".

I dont think specifying "WINDOWS" will work for you. You can try changing your desired capabilities to refer to WIN7 and that should work.

Upvotes: 1

Related Questions