У нас есть веб-сайт, который построен на 100% из Angular, и меня попросили использовать Protractor для написания сквозного тестирования.Теперь столкнулся с проблемой, что если я не использую waitForAngular(false)
и browser.sleep(3000)
, то мой тест не пройден, даже если я использовал ExpectedCondition
.
Так вот мой сценарий:
В логинестранице, я могу найти все элементы, отправить ключи в поле ввода и войти.Но после входа в систему это не удается.Он не может найти какой-либо элемент, нажмите на любой элемент вообще.
Мой код выглядит следующим образом.
describe("/profile", () => {
let page: Profile;
beforeAll(async () => {
page = await login(Profile, user, login);
await browser.wait(ExpectedConditions.presenceOf(page.element));
await navigate(path.profile)
})
afterAll(async () => {
logout();
})
it("should have navigate to the page", async () => {
expect(await browser.getCurrentUrl()).toContain("/profile");
});
it("should have correct page markup", async () => {
// this test fails without waitForAngular(false)
// or browser.sleep(3000) in the navigation or OnPrepare in the config
expect(await page.headerTitle.isDisplayed()).toBe(true);
expect(await page.headerTitle.getText()).toContain("Profile")
})
})
Что я делаю не так?