Protractoring non Angular sites
![](https://s3.amazonaws.com/media-p.slid.es/uploads/66414/images/1278110/protractor-logo-450.png)
Testing Tools
- Node
- Selenium
- CoffeeScript
- Protractor
Why protractor?
- Wraps WebDriver
- Simplifies async flow
- Clear API
- Supports non angular
- Configurable
- Multi browser
- Easy to use
- JS familiar
![](https://s3.amazonaws.com/media-p.slid.es/uploads/66414/images/1278128/3700959__b18e6ed1071bfada62ff7a6e829d7b25.jpg)
Setup
Write a test
describe 'Protractor Demo App', ->
it 'should have a title', ->
browser.get 'http://juliemr.github.io/protractor-demo/'
expect(browser.getTitle()).toEqual 'Super Calculator'
npm install -g protractor
webdriver-manager update
webdriver-manager start
# http://localhost:4444/wd/hub
Disable Angular
exports.config = {
// ...
onPrepare: function() {
global.dv = browser.driver;
global.isAngularSite = function(flag) {
browser.ignoreSynchronization = !flag;
};
isAngularSite(false);
},
// ...
};
Run
protractor protractor.conf.js
Page Objects
class Homepage
constructor: () ->
@nameInput = element By.id('nameInput')
@greeting = element By.xpath('//*[@id="greeting"]')
get = ->
browser.get 'http://mysite.com'
setName = (name) ->
@nameInput.sendKeys name
module.exports = Homepage
Resources
![](https://s3.amazonaws.com/media-p.slid.es/uploads/66414/images/1278847/2395231.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/66414/images/1278855/github_64_black.png)
Protractor
By Andrew Dacenko
Protractor
- 946