e2e tests (draft)
This commit is contained in:
parent
408db13fd4
commit
6c35046ab2
26 changed files with 1659 additions and 29 deletions
61
test/e2e/page-objects/page.js
Normal file
61
test/e2e/page-objects/page.js
Normal file
|
@ -0,0 +1,61 @@
|
|||
'use strict';
|
||||
|
||||
const config = require('../helpers/config');
|
||||
const webdriver = require('selenium-webdriver');
|
||||
const By = webdriver.By;
|
||||
const until = webdriver.until;
|
||||
|
||||
class Page {
|
||||
constructor(driver, props) {
|
||||
this.driver = driver;
|
||||
this.props = props || {
|
||||
elements: {}
|
||||
};
|
||||
}
|
||||
|
||||
element(key) {
|
||||
return this.driver.findElement(By.css(this.props.elements[key] || key));
|
||||
}
|
||||
|
||||
navigate() {
|
||||
this.driver.navigate().to(config.baseUrl + this.props.url);
|
||||
return this.waitUntilVisible();
|
||||
}
|
||||
|
||||
waitUntilVisible() {
|
||||
let selector = this.props.elements[this.props.elementToWaitFor];
|
||||
if (!selector && this.props.url) {
|
||||
selector = 'body.page--' + (this.props.url.substring(1).replace(/\//g, '--') || 'home');
|
||||
}
|
||||
return selector ? this.driver.wait(until.elementLocated(By.css(selector))) : this.driver.sleep(1000);
|
||||
}
|
||||
|
||||
submit() {
|
||||
return this.element('submitButton').click();
|
||||
}
|
||||
|
||||
click(key) {
|
||||
return this.element(key).click();
|
||||
}
|
||||
|
||||
getText(key) {
|
||||
return this.element(key).getText();
|
||||
}
|
||||
|
||||
getValue(key) {
|
||||
return this.element(key).getAttribute('value');
|
||||
}
|
||||
|
||||
setValue(key, value) {
|
||||
return this.element(key).sendKeys(value);
|
||||
}
|
||||
|
||||
containsText(str) {
|
||||
// let text = await driver.findElement({ css: 'body' }).getText();
|
||||
return this.driver.executeScript(`
|
||||
return (document.documentElement.textContent || document.documentElement.innerText).indexOf('${str}') > -1;
|
||||
`);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Page;
|
Loading…
Add table
Add a link
Reference in a new issue