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

Javascript 在量角器中添加自定义定位器快捷方式,javascript,angularjs,css-selectors,protractor,Javascript,Angularjs,Css Selectors,Protractor,在量角器中,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(

在量角器中,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"))

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

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")

我无法在我的项目中实现这一点。我尝试了几种方法。您介意分享您的代码吗?我想了解您是如何将自定义定位器添加到全局命名空间的?我经常遇到这样的错误:“$x不是函数”。已尝试添加元素(通过.xpath)