Angularjs 量角器:can';t添加新方法以返回FindElement
我想扩展FindElement和FindArrayElement库。我可以写一些类似于:Angularjs 量角器:can';t添加新方法以返回FindElement,angularjs,protractor,angularjs-e2e,e2e-testing,Angularjs,Protractor,Angularjs E2e,E2e Testing,我想扩展FindElement和FindArrayElement库。我可以写一些类似于: //ef_extend.js protractor.ElementFinder.prototype.getColumnList = function() { return this.all(webdriver.By.xpath('//td[@id="SSW_1_0"]/..//tr[@class="n-grid__head-row"]/th')); }; 以及: 现在我总是有错误: TypeError
//ef_extend.js
protractor.ElementFinder.prototype.getColumnList = function() {
return this.all(webdriver.By.xpath('//td[@id="SSW_1_0"]/..//tr[@class="n-grid__head-row"]/th'));
};
以及:
现在我总是有错误:
TypeError: Invalid locator
Stacktrace:
TypeError: Invalid locator
at Function.webdriver.Locator.checkLocator (c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\locators.js:244:9)
at [object Object].webdriver.WebElement.findElements (c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:1899:31)
at c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\lib\element.js:149:32
at Array.forEach (native)
at c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\lib\element.js:146:27
如果我写“by”而不是“by”,我有这个信息:
TypeError: Cannot read property 'xpath' of undefined
Stacktrace:
TypeError: Cannot read property 'xpath' of undefined
at [object Object].protractor.ElementFinder.getColumnList (C:\Git\ng_components\test\protractor\lib\ef_extend.js:21:31)
at [object Object].<anonymous> (C:\Git\ng_components\test\protractor\resource\ps-grid_spec_2.1.a.js:28:29)
at [object Object].jasmine.Env.describe_ (c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21)
at [object Object].jasmine.Env.describe (c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)
at describe (c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
at Object.<anonymous> (C:\Git\ng_components\test\protractor\resource\ps-grid_spec_2.1.a.js:11:1)
TypeError:无法读取未定义的属性“xpath”
堆栈跟踪:
TypeError:无法读取未定义的属性“xpath”
位于[object object].dragrator.ElementFinder.getColumnList(C:\Git\ng\u components\test\dragrator\lib\ef\u extend.js:21:31)
在[对象]。(C:\Git\ng\u components\test\dragrator\resource\ps-grid\u spec\u 2.1.a.js:28:29)
在[object object].jasmine.Env.descripe(c:\Users\Lilia.sapuria\AppData\Roaming\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:913:21)
在[object object].jasmine.Env.description(c:\Users\Lilia.sapuria\AppData\Roaming\npm\node\u modules\dragrator\node\u modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)
在描述(c:\Users\Lilia.Sapurina\AppData\Roaming\npm\node_modules\dragrator\node_modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
反对。(C:\Git\ng\u components\test\dragrator\resource\ps-grid\u spec\u 2.1.a.js:11:1)
您正在扩展ElementArrayFinder
,但需要扩展ElementFinder
:
protractor.ElementFinder.prototype.getColumnList = function() {
return this.all(protractor.By.xpath('//td[@id="SSW_1_0"]/..//tr[@class="n-grid__head-row"]/th'));
};
是的,但当我试图编写它时,我出现了一个错误:“TypeError:Invalid locator”我试图在文档中创建类似$$的函数,但我看不到区别:ElementArrayFinder.prototype.$$=函数(选择器){返回这个.all(webdriver.By.css(选择器));}@谢谢,您是否尝试过由使用量角器的
(尽管这不会有什么区别)?你能用TypeError
发布完整的回溯吗?用它看起来更好,但现在我有另一个错误。=)更新了我的问题。@?
protractor.ElementFinder.prototype.getColumnList = function() {
return this.all(protractor.By.xpath('//td[@id="SSW_1_0"]/..//tr[@class="n-grid__head-row"]/th'));
};