我的测试是在非角度页面中进行登录,然后进入Angular页面。 目前,为了使测试正常工作,我正在使用睡眠和超时(在登录后立即):
browser.sleep(5000);
browser.switchTo().defaultContent();
browser.ignoreSynchronization = false;
flow.timeout(5000);
我已经尝试删除其中的每一个,并尝试了预期条件:
var EC = protractor.ExpectedConditions;
var profilePhoto = element(By.css(".profile-photo"));
browser.wait(EC.visibilityOf(profilePhoto), 15000);
也尝试使用
browser.waitForAngular();
但是 - 没有睡眠和超时的任何尝试都会导致失败并且
Error while waiting for Protractor to sync with the page: "angular could not be found on the window"
我的问题是 - 我可以确保在没有“睡眠”或“超时”的情况下进入主页(登录后)吗?
答案 0 :(得分:1)
我今天早些时候遇到了同样的问题。在登录尝试之前添加browser.ignoreSynchronization = true;
并在登录尝试后添加browser.wait...
修复了问题:
// non-angular page
browser.get("/login");
// ignore synchronization since we're transitioning from a non-angular page to an angular page
browser.ignoreSynchronization = true;
// login
element(by.id("email")).sendKeys("username");
element(by.id("password")).sendKeys("password");
element(by.partialButtonText("Login")).click();
// wait
var EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(element(by.id("dashboard"))), 10000);