在量角器中添加自定义定位器快捷方式

Adding custom locator shortcuts in Protractor

本文关键字:定位器 快捷方式 自定义 添加 量角器      更新时间:2023-09-26

在量角器中,CSS 选择器有$$$方便的快捷方式:

$(".myclass")  // means: element(by.css(".myclass"))
$$(".myclass")  // means: element.all(by.css(".myclass"))

是否可以为其他定位器引入自定义快捷方式


更具体地说,如果我们想为"通过中继器"呼叫提供一个$r$$r快捷方式怎么办。为了能够编写:

$r("item in items")  
$$r("item in items")

而不是:

element(by.repeater("item in items"))
element.all(by.repeater("item in items"))

要创建快捷方式,请在全局命名空间以及ElementFinderElementArrayFinder的原型上添加自定义定位器:

global.$r = function(selector) {
  return protractor.element(protractor.by.repeater(selector));
};
global.$$r = function(selector) {
  return protractor.element.all(protractor.by.repeater(selector));
};
ElementFinder.prototype.$$r = function(selector) {
  return this.all(protractor.by.repeater(selector));
};
ElementFinder.prototype.$r = function(selector) {
  return this.element(protractor.by.repeater(selector));
};
ElementArrayFinder.prototype.$$r = function(selector) {
  return this.all(protractor.by.repeater(selector));
};

用法:

$r("item in items")
$$r("item in items")
$("#id").$r("item in items")
$("#id").$$r("item in items")