Search code examples
seleniumrobotframeworksaucelabs

Running RobotFramework Tests on Sauce Labs - error with timing out


I have existing selenium tests written in Robot IDE Framework that I'm trying to run in Sauce Labs.

I'm using the sample test from this tutorial to see if I can get at least one test running. http://datakurre.pandala.org/2014/03/cross-browser-selenium-testing-with.html

The test passes locally, and passes all the tests on Sauce Labs, but then times out and gives and error, "Test did not see a new command for 90 seconds. Timing out. error" because it's not disconnecting Remote Web Driver.

I've tried all of these, together and separately at the end of the "Close test browser" function:

  • Close all browsers
  • Process close
  • Stop selenium server

I've also tried adding ((RemoteWebDriver) getCurrentWebDriver()).quit() in one of the python functions that runs during the closing process. I'm new to Selenium and Robot Framework, so I'm not sure how to grab the Remote Web Driver.

Here is the code, in case that helps:

    *** Settings ***
Test Setup        Open test browser
Test Teardown     Close test browser
Resource          ../../Keywords/super.txt
Library           Selenium2Library
Library           ../../Library/SauceLabs.py

*** Variables ***
${LOGIN_FAIL_MSG}    Incorrect username or password.
${COMMAND_EXECUTOR}    http://username:key@ondemand.saucelabs.com:80/wd/hub
${REMOTE_URL}     http://username:key@ondemand.saucelabs.com:80/wd/hub
${DESIRED_CAPABILITIES}    username:name,access-key:key,name:Testing RobotFramework,platform:Windows 8.1,version:26,browserName:CHROME,javascriptEnabled:True

*** Test Cases ***
Incorrect username or password
    [Tags]    Login
    Go to    https://saucelabs.com/login
    Page should contain element    id=username
    Page should contain element    id=password
    Input text    id=username    anonymous
    Input text    id=password    secret
    Click button    id=submit
    Page should contain    ${LOGIN_FAIL_MSG}
    [Teardown]

*** Keywords ***
Open test browser
    Open browser    http://www.google.com    ${BROWSER}    \    remote_url=${REMOTE_URL}    desired_capabilities=${DESIRED_CAPABILITIES}

Close test browser
    Run keyword if    '${REMOTE_URL}' != ''    Report Sauce status    ${SUITE_NAME} | ${TEST_NAME}    ${TEST_STATUS}    ${TEST_TAGS}    ${REMOTE_URL}
    Close all browsers
    Process close
    Stop selenium server

Solution

  • You shouldn't need to do anything special to close down the connection. My guess is, there's something in your test that is preventing the browser from being closed. My recommendation is to start with a simpler example, and start from the command line. Get that working, and then work your way up to being able to run something more complex from within RIDE.

    Here is a working example where I removed all of the extra stuff in the test. I am able to run this both from the command line and via RIDE on Windows. You'll have to add in your own key, however:

    *** Settings ***
    | Library | Selenium2Library
    
    *** Variables ***
    | @{_tmp} 
    | ... | name:Testing RobotFramework Selenium2Library,
    | ... | browserName:internet explorer,
    | ... | platform:Windows 8,
    | ... | version:10
    
    | ${CAPABILITIES}   | ${EMPTY.join(${_tmp})} 
    | ${KEY}            | <put your username:key here>
    | ${REMOTE_URL}     | http://${KEY}@ondemand.saucelabs.com:80/wd/hub
    | ${URL}            | https://saucelabs.com/login
    | ${LOGIN_FAIL_MSG} | Incorrect username or password.
    
    *** Test cases ***
    | Example of connecting to saucelabs via robot
    | | [Setup] 
    | | ... | Open Browser
    | | ... | ${URL}
    | | ... | remote_url=${REMOTE_URL}
    | | ... | desired_capabilities=${CAPABILITIES}
    | | 
    | | Page should contain element | id=username
    | | Page should contain element | id=password
    | | 
    | | Input text | id=username | anonymous
    | | Input text | id=password | secret
    | | Click button | id=submit
    | | 
    | | Page should contain | ${LOGIN_FAIL_MSG}
    | | 
    | | [Teardown] | Close all browsers