diff --git a/sample-code/examples/node/promises.js b/sample-code/examples/node/promises.js new file mode 100644 index 000000000..7bc7bc14d --- /dev/null +++ b/sample-code/examples/node/promises.js @@ -0,0 +1,50 @@ +var wd = require("wd") + , assert = require("assert") + , username = "" // Omit for local test run + , accessKey = "" // Omit for local test run + , appURL = "https://raw.github.com/appium/appium/master/assets/TestApp.app.zip"; + +var browser = wd.promiseRemote( + "ondemand.saucelabs.com" // Omit for local test run + , 80, username, accessKey // Omit for local test run +); + +// Print what's going on to the console +browser.on('status', function(info) { + console.log('\x1b[36m%s\x1b[0m', info); +}); + +browser.on('command', function(meth, path, data) { + console.log(' > \x1b[33m%s\x1b[0m: %s', meth, path, data || ''); +}); + +var elems = null; + +// Run the promises! +browser.init({ + device: 'iPhone Simulator' + , name: "Appium: WD with promises" + , platform:'Mac 10.8' + , app: appURL + , version: '' + , browserName: '' +}).then(function () { + return browser.elementsByTagName('textField'); +}).then(function (els) { + elems = els; + return browser.type(els[0], '2'); +}).then(function () { + return browser.type(elems[1], '3'); +}).then(function() { + return browser.elementsByTagName('button'); +}).then(function(buttons) { + return browser.clickElement(buttons[0]); +}).then(function() { + return browser.elementsByTagName('staticText'); +}).then(function(texts) { + return texts[0].text() +}).then(function(str) { + assert.equal(str, 5); +}).fin(function () { + browser.quit(); +}).done(); diff --git a/sample-code/examples/node/raw.js b/sample-code/examples/node/raw.js new file mode 100644 index 000000000..4a424886a --- /dev/null +++ b/sample-code/examples/node/raw.js @@ -0,0 +1,48 @@ +var wd = require("wd") + , assert = require("assert") + , username = "" // Omit for a local test run + , accessKey = "" // Omit for a local test run + , appURL = "https://raw.github.com/appium/appium/master/assets/TestApp.app.zip"; + +// Instantiate a new browser sessoin +var browser = wd.remote( + "ondemand.saucelabs.com" // Omit for a local test run + , 80, username, accessKey // Omit for a local test run +); + +// See whats going on +browser.on('status', function(info) { + console.log('\x1b[36m%s\x1b[0m', info); +}); + +browser.on('command', function(meth, path, data) { + console.log(' > \x1b[33m%s\x1b[0m: %s', meth, path, data || ''); +}); + +// Run the test +browser + .chain() + .init({ + device: 'iPhone Simulator' + , name: "Appium: with WD" + , platform:'Mac 10.8' + , app: appURL + , version: '' + , browserName: '' + }) + .elementsByTagName("textField", function(err, els) { + els[0].type('2', function(err) { + els[1].type('3', function(err) { + browser.elementsByTagName('button', function(err, btns) { + btns[0].click(function(err) { + browser.elementsByTagName('staticText', function(err, texts) { + texts[0].text(function(err, str) { + assert.equal(str, 5); + browser.quit(); + }) + }) + }); + }) + }); + }); + }) diff --git a/sample-code/examples/node/sync.js b/sample-code/examples/node/sync.js new file mode 100644 index 000000000..f8da23a39 --- /dev/null +++ b/sample-code/examples/node/sync.js @@ -0,0 +1,55 @@ +var wdSync = require("wd-sync") + , assert = require("assert") + , username = "" //omit for local + , accessKey = "" // Omit for local + , appURL = "https://raw.github.com/appium/appium/master/assets/TestApp.app.zip"; + +// Instantiate a remote wd instance +var client = wdSync.remote( + "ondemand.saucelabs.com" //Omit for local test run + , 80, username, accessKey //Omit for local test run +) +, browser = client.browser +, sync = client.sync; + +// Define the environment +var desired = { + device: 'iPhone Simulator' + , name: "Appium: Sync WD" + , platform:'Mac 10.8' + , app: appURL + , version: '' + , browserName: '' +}; + +// Print useful output +browser.on('status', function(info) { + console.log('\x1b[36m%s\x1b[0m', info); +}); + +browser.on('command', function(meth, path, data) { + console.log(' > \x1b[33m%s\x1b[0m: %s', meth, path, data || ''); +}); + +// Run the testage +sync(function() { + + // Init the browser + browser.init(desired); + + // Type into two fields + var fields = browser.elementsByTagName('textField'); + fields[0].type('2'); + fields[1].type('3'); + + // Click a button + var buttons = browser.elementsByTagName('button'); + buttons[0].click(); + + // Verify results + var texts = browser.elementsByTagName('staticText'); + assert.equal(browser.text(texts[0]), 5); + + // quite the browser + browser.quit(); +});