【发布时间】:2015-08-31 06:03:56
【问题描述】:
我有一个应用程序,它导航到非 Angular 应用程序进行登录。基本登录是这样的。首先,加载 Angular 应用程序,然后单击页面上的按钮。然后导航到非 Angular 应用程序(使用 IdentityServer 实现的 STS)并登录,然后导航回 Angular 应用程序。
这是我为处理这个问题而编写的代码。
this.login = function (userId) {
browser.driver.get(browser.params.host.hostname);
browser.driver.findElement(by.id('continuebutton')).click();
browser.driver.wait(function () {
browser.driver.findElement(by.xpath("//*[@id=\"body\"]/section/div[2]/div[3]/a")).click();
browser.driver.findElement(by.id("UserName")).sendKeys(userId);
browser.driver.findElement(by.id("Password")).sendKeys("flisdev");
browser.driver.findElement(by.tagName("button")).click();
}, 10000);
};
但这会引发“页面上未找到 Angular”错误,有时会为 XPath 引用的链接引发随机元素未找到错误。登录的基本流程类似于
Angular 应用 --> 非 Angular 应用 --> Angular 应用
我该如何处理这种登录?
【问题讨论】:
标签: javascript angularjs protractor end-to-end