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?
How can I use selenium-webdriver package with SauceLabs?
Asked Answered
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();
What's the syntax for running tests in multiple browsers? Array instead of object in withCapabilities? –
Peddler
@Steven: you should use an env var matrix passing
SELENIUM_BROWSER
. Similarly I propose using SELENIUM_REMOTE_URL
instead of usingServer
. That way you can run local tests on your desktop without connecting to Sauce. –
Rawalpindi © 2022 - 2024 — McMap. All rights reserved.