Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 量角器:can';t添加新方法以返回FindElement_Angularjs_Protractor_Angularjs E2e_E2e Testing - Fatal编程技术网

Angularjs 量角器:can';t添加新方法以返回FindElement

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

我想扩展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: 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'));
};