Skip to content

Commit bd5f55d

Browse files
Initial Commit
0 parents commit bd5f55d

File tree

7 files changed

+91
-0
lines changed

7 files changed

+91
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
dist/

Readme.md

Whitespace-only changes.

config.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { ProtractorBrowser, Config } from 'protractor';
2+
export let config: Config = {
3+
seleniumAddress: 'http://localhost:4444/wd/hub',
4+
capabilities: {
5+
'browserName': 'chrome'
6+
},
7+
framework: 'jasmine',
8+
// specs: ['./specs/**/*.js'],
9+
specs: ['./specs/second.spec.js'],
10+
jasmineNodeOpts: {
11+
defaultTimeoutInterval: 90000
12+
},
13+
onPrepare: () => {
14+
let globals = require('protractor');
15+
let browser = globals.browser;
16+
browser.manage().window().maximize();
17+
browser.manage().timeouts().implicitlyWait(5000);
18+
}
19+
}

package.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "learn-protractor",
3+
"version": "1.0.0",
4+
"description": "Protractor Typescript automation framework",
5+
"main": "config.js",
6+
"dependencies": {
7+
"protractor": "^5.2.0"
8+
},
9+
"devDependencies": {
10+
"@types/jasmine": "^2.8.2",
11+
"@types/jasminewd2": "^2.0.3"
12+
},
13+
"scripts": {
14+
"pretest": "npm run tsc",
15+
"test": "protractor dist/config.js",
16+
"tsc": "tsc"
17+
},
18+
"keywords": [
19+
"Protractor",
20+
"Typescript"
21+
],
22+
"author": "Gaurav Madaan",
23+
"license": "ISC"
24+
}

specs/first.spec.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { ElementFinder, browser, by, element } from 'protractor';
2+
describe('angularjs homepage todo list', function () { //Suite in Jasmine
3+
it('should add a todo', function () { // Test in Jasmine
4+
browser.get('https://angularjs.org'); // Entering application url in browser
5+
// Enter text under TODO
6+
element(by.model('todoList.todoText')).sendKeys('write first protractor test');
7+
element(by.css('[value="add"]')).click(); // Clicks on 'Add' button
8+
// Getting all Todo lists displayed
9+
element.all(by.repeater('todo in')).then(function (todoList) {
10+
// Asserting the TODO's count as 3
11+
expect(todoList.length.toString()).toEqual('3');
12+
todoList[2].getText().then(function (text) {
13+
//Verifying newly entered TODO is added
14+
expect(text).toEqual('write first protractor test');
15+
});
16+
});
17+
});
18+
});

specs/second.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { browser, element, by, By, $, $$, ExpectedConditions } from 'protractor';
2+
describe('Technossus website', function () { //Suite in Jasmine
3+
it('should have Technossus in title', function () { // Test in Jasmine
4+
5+
browser.ignoreSynchronization = false;
6+
browser.waitForAngularEnabled(false);
7+
8+
browser.driver.get('http://angularjs.org/');
9+
expect(browser.getTitle()).toContain('AngularJS');
10+
11+
});
12+
});

tsconfig.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es5",
4+
"module": "commonjs",
5+
"moduleResolution": "node",
6+
"sourceMap": false,
7+
"declaration": false,
8+
"removeComments": false,
9+
"noImplicitAny": false,
10+
"outDir": "dist",
11+
"types": ["jasmine", "node"]
12+
},
13+
"exclude": [
14+
"node_modules"
15+
]
16+
}

0 commit comments

Comments
 (0)