Protractor:非角度登录到角度网站
Protractor: Non angular login to angular site
在我到达要测试的网站之前,我必须首先访问一个登录(非角度)页面
var url = 'http://localhost:9999/login?usern=bar';
browser.driver.get(url);
尽管这是一个非角度页面,但将?usern=bar
传递到url中,服务器会给出302的HTTP CODE,并重定向到页面/new-user
。在new-user
页面中,我必须单击一个按钮才能开始测试
但无论我做什么,我总是得到
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
我的流程中出现了问题,因为我可以看到new-user
页面,但按钮没有被点击(在那之后很长一段时间就会出现错误)
规范文件:
var Site = require('helper/site');
describe('Main', function {
beforeAll(function () {
return Site.login();
});
it('should show the main page', function () {
epect(browser.getCurrentUrl()).toMatch(/'/main/);
});
});
Site.js:
function login() {
browser.driver.get('http://localhost:9999/login?usern=bar');
browser.driver.wait(function () {
return browser.driver.getCurrentUrl().then(function (url) {
return /'/new-user/.test(url);
});
});
element(by.css('.save')).click();
}
module.exports = {
login: login
};
如有任何帮助,将不胜感激
您必须关闭同步:
describe('Main', function {
beforeAll(function () {
browser.ignoreSynchronization = true;
return Site.login();
});
it('should show the main page', function () {
browser.ignoreSynchronization = false;
expect(browser.getCurrentUrl()).toMatch(/'/main/);
});
});
不过,当你进入主页时,想想更好的地方把它关掉,然后再打开。
我使用browser.waitForAngularEnabled(false)关闭等待angular应用程序。我的应用程序使用O365登录。
public async HandleO365Login() {
await browser.waitForAngularEnabled(false);
await this.o365usernameTextBox.sendKeys(Constants.USER_EMAIL);
await this.o365NextButton.click();
}
你可以在你的angular应用程序加载后打开它。
相关文章:
- 突然间我可以't登录ASP.Net网站
- 使用 nodejs 通过蒸汽登录登录网站
- 将登录链接到另一个网站而不提供密码
- 如何创建一个提示用户输入登录id和密码的网站
- 从网站调用phpmyadmin中的存储过程来检查登录详细信息
- 使用Ajax登录网站
- Casperjs-登录https网站的脚本出错
- 为移动网站高效登录Facebook
- 如何使用脚本将twitter登录集成到我的网站
- 使用自制的html表单注册/登录网站
- Protractor:非角度登录到角度网站
- 如何创建Django网站的facebook登录
- 登录到网站并从页面获取html
- 防止Angular网站上未经授权的用户在重定向到登录之前看到网站的最佳方式
- 自动网站登录打开浏览器
- 如何使用社交网络帐户或其他网站登录
- jqueryget,post在尝试创建自动网站登录时不起作用
- 网站登录使用WebView Javascript Android
- 自动填写其他网站登录表单中的值
- 从我的网站登录gmail