时间紧迫,先罗列一些内容
- Protractor的安装与使用
- Protractor的语法解释
- 术语以及原理
- 一些普遍的JS调试语法
安装与使用
语法解释
- element/elementall
- ElementFinder/locator
- promise
- by
基于Protractor编写的测试角度,核心就是找到DOM元素,并与其交互,然后验证其交互结果是否与预期一致(说白了,就是写一个模拟器,模拟用户在网页上的操作动作)。所以查找DOM元素(这还涉及网页的功能逻辑)并与之交互(网页的交互逻辑)非常重要。
Protractor提供了一个全局的对象(类或者什么都可以,现在看来都差不多)element,它可以去接受一个locator对象,并返回一个elementFinder对象。举个例子:
element(by.id('gobutton')).click();
这行代码中,by对象用查找id的方式确定一个locator对象(也就是说,这个locator对象,应该是网页DOM树中、id为‘gobutton’的元素),然后返回一个elementFinder对象。该代码在获得elementFinder对象之后,要寻求与其进行交互,交互动作为click事件。
如上面所说,elementFinder对象有很多方法,如
import { element, by } from 'protractor'; var ele = element(by.id('gotbutton')); //click ele.click(); //type context ele.sendKeys('xxx'); //clear context ele.clear(); //get value of a target property ele.getAttribute('value'); //get text ele.getText();
所有elementFinder对象的方法,返回值都是一个promise对象,举个例子:
getTitleText() { return element(by.css('.navbar-brand')).getText() as Promise<string>; }
这个函数(方法)封装了elementFinder的getText方法,并返回了promise对象(字符型)。所以当想要验证交互结果的时候,需要对promise对象再进行操作。
方式1:
术语以及原理
异步
链式调用
普遍的JS调试语法
- describe
- it
- beforeAll, beforEach
- afterAll, afterEach
- Except