【E2E Testing】学习(4):Protractor了解

时间紧迫,先罗列一些内容

  • 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

猜你喜欢

转载自www.cnblogs.com/RicardoIsLearning/p/12955022.html