Search code examples
javascriptselenium-webdriversaucelabs

How can I use selenium-webdriver package with SauceLabs?


SauceLabs gives examples of how to write remote tests using the WD node package. I prefer the selenium-webdriver package. Is there some way to use that remotely instead?


Solution

  • Taking the sample code from the selenium-webdriver docs, we can modify it as follows to talk to Sauce Labs's selenium cloud. It assumes you've got credentials in ENV vars, of course you could hardcode them if you want to be less secure.

    var webdriver = require('selenium-webdriver');
    
    var sauce = 'http://ondemand.saucelabs.com:80/wd/hub';
    var driver = new webdriver.Builder().
        usingServer(sauce).
        withCapabilities({
            browserName: 'Chrome',
            platform: 'Windows 2012',
            name: 'Sample selenium-webdriver test',
            username: process.env.SAUCE_USERNAME,
            accessKey: process.env.SAUCE_ACCESS_KEY
        }).
        build();
    
    driver.get('http://www.google.com');
    driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
    driver.findElement(webdriver.By.name('btnG')).click();
    driver.wait(function() {
        return driver.getTitle().then(function(title) {
            return title === 'webdriver - Google Search';
        });
    }, 1000);
    
    driver.quit();