要想快速完成一个项目, 自动化是很关键很有用的一块.
所以有了这篇文章.
从大家的反馈中得知,
先从安装protractor开始说起.
第1节 如何安装和初始化设置
第2节 开始第一个test case (以登录为例)
getUserNameInput() {
return element(by.name('userNameOrEmailAddress'));
}
getPasswordInput() {
return element(by.name('password'));
}
getLoginButton() {
return element(by.buttonText('登录'));
// return element(by.id('loginbtn')); // 后备措施,比如是英文环境的时候,上面代码就doesn't work,就要用这句了。
}
getLogoutButton() {
return element(by.buttonText('注销'));
}
import { browser } from 'protractor';
// describe('workspace-project App', () => {
// let page: AppPage;
// beforeEach(() => {
// page = new AppPage();
// });
// it('should display welcome message', () => {
// page.navigateTo();
// expect(page.getParagraphText()).toEqual('Welcome to YoyoCmsTemplate!');
// });
// });
describe('管理员登录', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('输入正确用户名和密码', () => {
page.navigateTo();
// browser.waitForAngularEnabled(); // 等待程序加载完
page.getUserNameInput().sendKeys('admin'); // 输入用户名
page.getPasswordInput().sendKeys('123qwe'); // 输入密码
// 等待登录按钮从disable变成enable
browser.wait(function () {
return page.getLoginButton().isEnabled;
}
).then(function () {
// console.log(page.getLoginButton());
page.getLoginButton().click(); // 点击登录按钮
expect(page.getLogoutButton().isEnabled()).toBe(true); // 出现注销按钮,意味着登录成功了
});
});
});

Q&A
问题0:为啥我输入ng test没有得到同样结果? 回答:ng test和ng e是完全不同的两回事,结果当然不一样,所以你应该输入ng e.
问题1:为啥我复制了你的代码却出错? 回答:我的代码是建立在角落白板报的52abp2018年11月份版本上的,如果你不是使用这个版本52abp,那么里面的用户名和密码元素的捕抓和值都要做相应更改。
问题2:为啥我执行webdriver-manager update出错? 回答:99%是网络原因。
问题3:报错:</button> is not clickable at point (514, 688). Other element would receive the click。回答:要被点击的button没有显示在屏幕上,有如下可能:1,浏览器没有全屏,导致这个button看不见,这时候要把浏览器设置为全屏。2. 锁屏了,跑自动化测试的时候不要锁屏。3. 改用无头浏览器。
第3节 写更多test case
第4节 使用cucumber来加快写test case的速度
第5节 测试浏览器兼容性 - 同时在多个不同浏览器里跑测试
嗯, 考虑99%的同学之前都还没接触过protractor, 大家先把前面两块完成消化之后, 给我反馈,我根据大家的反馈再更新第3、4、5节吧.
这是<如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇)> 系列文章的其中一篇, 其他文章会陆续更新.
本文会经常更新,请阅读原文:https://www.cnblogs.com/adalovelacer/p/abp-quickly-delivery-e2e-angular-protractor.html, 以避免陈旧错误知识的误导,同时有更好的阅读体验。
登录查看全部
参与评论
手机查看
返回顶部