mirror of
https://github.com/appium/appium.git
synced 2026-02-11 12:29:48 -06:00
added selenium-webdriver bridge sample
This commit is contained in:
@@ -12,6 +12,7 @@ mocha sample-code/examples/node/ios-complex.js
|
||||
mocha sample-code/examples/node/ios-webview.js
|
||||
mocha sample-code/examples/node/ios-actions.js
|
||||
mocha sample-code/examples/node/ios-local-server.js
|
||||
mocha sample-code/examples/node/ios-selenium-webdriver-bridge.js
|
||||
```
|
||||
### dev (run against locally built app)
|
||||
|
||||
@@ -23,6 +24,7 @@ DEV=1 mocha sample-code/examples/node/ios-complex.js
|
||||
DEV=1 mocha sample-code/examples/node/ios-webview.js
|
||||
DEV=1 mocha sample-code/examples/node/ios-actions.js
|
||||
DEV=1 mocha sample-code/examples/node/ios-local-server.js
|
||||
DEV=1 mocha sample-code/examples/node/ios-selenium-webdriver-bridge.js
|
||||
```
|
||||
|
||||
### Sauce Labs
|
||||
@@ -36,6 +38,7 @@ SAUCE=1 mocha sample-code/examples/node/ios-simple.js
|
||||
SAUCE=1 mocha sample-code/examples/node/ios-complex.js
|
||||
SAUCE=1 mocha sample-code/examples/node/ios-webview.js
|
||||
SAUCE=1 mocha sample-code/examples/node/ios-actions.js
|
||||
SAUCE=1 mocha sample-code/examples/node/ios-selenium-webdriver-bridge.js
|
||||
```
|
||||
|
||||
### Sauce Labs + Sauce Connect
|
||||
|
||||
108
sample-code/examples/node/ios-selenium-webdriver-bridge.js
Normal file
108
sample-code/examples/node/ios-selenium-webdriver-bridge.js
Normal file
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
The appium specific methods are not yet implemented by selenium-webdriver.
|
||||
However it is possible to attach an existing selenium-webdriver to a wd
|
||||
browser instance as below.
|
||||
|
||||
prerequisite:
|
||||
npm install selenium-webdriver
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
require("./helpers/setup");
|
||||
|
||||
var webdriver = require('selenium-webdriver'),
|
||||
wd = require("wd"),
|
||||
wdBridge = require('wd-bridge')(wd),
|
||||
_ = require('underscore'),
|
||||
Q = require('q'),
|
||||
chai = require('chai');
|
||||
chai.should();
|
||||
|
||||
describe("ios simple", function () {
|
||||
this.timeout(300000);
|
||||
var driver;
|
||||
var wdDriver;
|
||||
var allPassed = true;
|
||||
|
||||
before(function () {
|
||||
var builder;
|
||||
var caps = new webdriver.Capabilities();
|
||||
|
||||
_(require("./helpers/caps").ios71).each(function (val, key) {
|
||||
caps.set(key, val);
|
||||
});
|
||||
caps.set('app', require("./helpers/apps").iosTestApp);
|
||||
if (process.env.SAUCE) {
|
||||
caps.set('username', process.env.SAUCE_USERNAME);
|
||||
caps.set('accessKey', process.env.SAUCE_ACCESS_KEY);
|
||||
caps.set('name', 'ios - selenium-webdriver bridge');
|
||||
caps.set('tags', ['sample']);
|
||||
builder = new webdriver.Builder()
|
||||
.usingServer('http://ondemand.saucelabs.com:80/wd/hub')
|
||||
.withCapabilities(caps);
|
||||
} else {
|
||||
builder = new webdriver.Builder()
|
||||
.usingServer('http://localhost:4723/wd/hub')
|
||||
.withCapabilities(caps);
|
||||
}
|
||||
driver = builder.build();
|
||||
return wdBridge
|
||||
.initFromSeleniumWebdriver(builder, driver)
|
||||
.then(function (_wdDriver) {
|
||||
wdDriver = _wdDriver;
|
||||
require("./helpers/logging").configure(wdDriver);
|
||||
});
|
||||
});
|
||||
|
||||
after(function () {
|
||||
return new Q(driver
|
||||
.quit())
|
||||
.finally(function () {
|
||||
if (process.env.SAUCE) {
|
||||
return wdDriver.sauceJobStatus(allPassed);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
allPassed = allPassed && this.currentTest.state === 'passed';
|
||||
});
|
||||
|
||||
function populate() {
|
||||
var sum = 0;
|
||||
var populateField = function (name) {
|
||||
return driver.wait(function () {
|
||||
return driver.findElement(webdriver.By.name(name));
|
||||
}, 3000).then(function (el) {
|
||||
var x = _.random(0,10);
|
||||
sum += x;
|
||||
return el.sendKeys('' + x);
|
||||
}).then(function () {
|
||||
return driver.findElement(webdriver.By.name('Done')).click();
|
||||
}).then(function () { return driver.sleep(1000); });
|
||||
};
|
||||
return populateField('IntegerA')
|
||||
.then(function () { return populateField('IntegerB'); })
|
||||
.then(function () { return sum; });
|
||||
}
|
||||
|
||||
it("should compute the sum", function () {
|
||||
var sum;
|
||||
return populate()
|
||||
.then(function (_sum) {
|
||||
sum = _sum;
|
||||
// using appium specific methods to find a click the button
|
||||
return wdDriver.
|
||||
elementByAccessibilityId('ComputeSumButton')
|
||||
.click().sleep(1000);
|
||||
}).then(function () {
|
||||
return wdDriver
|
||||
.elementByIosUIAutomation('elements().withName("Answer");')
|
||||
.text();
|
||||
}).then(function (text) {
|
||||
text.should.equal("" + sum);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user