在nightwatchjs命令脚本中,我有以下代码;
exports.command = function(searchMakeQueryPage) {
var solrMakes = searchMakeQueryPage.Make.filter(val => typeof val === 'string');
console.log('number of sorl makes = ',solrMakes.length);
this.elements('css selector','#bfsDesktopFilters #ddl-make option',function (dropDownmakes) {
var numMakes = dropDownmakes.value.length;
console.log('number of element makes = ',numMakes);
this.assert.equal(solrMakes.length,numMakes-1);
});
var makeResults = [];
this.elements('css selector','#bfsDesktopFilters .search-filters__item #ddl-make > option',function (numberOfmakes) {
numberOfmakes.value.forEach(element => {
this.elementIdValue(element.ELEMENT,function (text) {
makeResults.push(text.value);
});
});
this.perform(function(){
var randomMake = makeResults[Math.floor(Math.random()*makeResults.length)];
var randomMakeHref = randomMake.replace(/\s/g,'-');
console.log('random make = ',randomMake);
console.log('random make href = ',randomMakeHref);
this.click(`#bfsDesktopFilters #ddl-make option[value="${randomMake}"]`);
});
});
};
除了this.click(`#bfsDesktopFilters #ddl-make option[value="${randomMake}"]`);
命令外,其他方法都有效。
运行测试时,出现以下错误;
运行执行命令时出错:this.click不是函数
是这里引起问题的括号的位置还是问题的this.click(`#bfsDesktopFilters #ddl-make option[value="${randomMake}"]`)
命令的位置?
我以前在nightwatchjs命令脚本中使用过this.click
命令,所以我知道应该可以。
任何帮助将不胜感激。谢谢。