Я использую транспортир с огурцом и трипеском.У меня все мои объекты страницы определены как классы.В определении шагов я инициализирую каждый необходимый объект страницы и использую его для различных утверждений или действий.Настройка работает нормально при запуске одного сценария.Однако, если я хочу запустить больше сценариев, мне нужно найти способ для повторной инициализации объектов страницы для каждого сценария, в противном случае транспортир будет использовать ранее инициализированные объекты с элементами, которые были получены для первого экземпляра браузера, и я получуошибка.
Есть идеи, как это сделать?Я попытался посмотреть примеры проектов на github, но не смог найти ничего, что решило бы мою проблему.
Это небольшой пример из моей настройки:
loginpage.po.ts:
export class LoginPage{
...
async login(username:string,password:string){
await this.enteremail(username);
await this.clickNext();
await this.enterPass(password);
await this.clickSignIn();
...
}
}
common.steps.ts:
import { LoginPage} from '../pageobjects/loginPage.po';
...
var loginPage: LoginPage= new LoginPage();
Given('I have the URL ', async () => {
await browser.get(config.baseUrl);
await expect(loginPage.isAtSignIn()).to.eventually.be.true;
});
Given ('I login', async () => {
await loginPage.login(config.params.username, config.params.password);
});