我写了一个自定义定位器:
onPrepare: function() {
browser.ignoreSynchronization = true;
by.addLocator('automationId', function(value, parentElement) {
parentElement = parentElement || document;
var nodes = parentElement.querySelectorAll('[automationId]');
return Array.prototype.filter.call(nodes, function(node) {
return (node.getAttribute('automationId') === value);
});
});
},
但是当我尝试使用它并运行时:
element(by.automationId('auto-id'));
错误是:
Property automationId does not exist on type IProtractorLocationStrategy
如何解决这个问题?
答案 0 :(得分:0)
使用自定义匹配器遇到同样的问题。没有尝试过命名空间扩展(但你肯定应该),所以我没有干净的解决方案。
但作为修补程序(真的很脏),您可以尝试通过['']访问自定义定位器:
element(by['automationId']('auto-id'));
请注意,打字稿会将此视为“任意”类型,因此您将失去打字对象的好处。