browser.get('/login');
element(by.css('input[formControlName=email]')).sendKeys('blablabla');
element(by.css('input[formControlName=password]')).sendKeys('blablabla');
element(by.id('login')).click();
describe('Project Test', () => {
let page: TestPage;
let auth: Auth();
beforeEach(() => {
page = new TestPage();
auth = new Auth();
});
if('should test', () => {
auth.login();
// далее идет переход на страницу и клик по элементу который видимо еще не существует и тест падает
});
});
const DEFAULT_LINK: string = '/';
const EMAIL: string = 'blablabla';
const PASSWORD: string = 'blablabla';
export class Auth {
constructor() {
browser.driver.manage().window().maximize();
browser.get(DEFAULT_LINK);
this.login();
}
login() {
browser.sleep(1000);
const email = element(by.css('input[formControlName=email]'));
const pass = element(by.css('input[formControlName=password]'));
const button = element(by.id('login'));
email.sendKeys(EMAIL);
pass.sendKeys(PASSWORD);
button.click();
browser.ignoreSynchronization = true;
browser.sleep(1000);
}
logout() {
browser.sleep(1000);
const buttonLogin = element(by.xpath('путь до кнопки выхода'));
const buttonConfirm = element(by.xpath('путь до кнопки подтверждения выхода'));
buttonLogout.click();
buttonConfirm.click();
browser.ignoreSynchronization = true;
browser.sleep(1000);
}
}
// imports
describe('Page test1', () => {
let auth: Auth;
let page: Page1;
beforeEach(() => {
auth = new Auth();
page = new Page1();
});
afterEach(() => {
auth.logout(); // Проверяем каждую страницу отдельно, поэтому после завершения теста страницы - разлогиниваемся
});
it('Test 1...', () => {
// некие тесты
});
});