我需要检查类元素是否为ui-state-active。
class="ui-state-default ui-state-active" href="#">15</a>我正在尝试使用所有的方法,但不了解如何编写代码:
.perform(function () {
var arrAttr = [];
var arrCssProp = [];
var arrValue= [];
for (i = 1; i < 8; i++) {
for (j = 1; j < 7; j++) {
browser.useXpath();
browser.getCssProperty('//*[@id="ui-datepicker-div"]/table/tbody/tr[' + i + ']/td[' + j + ']', '.ui-state-default', function (result) {
arrCssProp[j, i] = result.value;
});
browser.getAttribute('//*[@id="ui-datepicker-div"]/table/tbody/tr[' + i + ']/td[' + j + ']', '.ui-state-default', function (result) {
arrAttr[j, i] = result.value;
});
browser.getValue('//*[@id="ui-datepicker-div"]/table/tbody/tr[' + i + ']/td[' + j + ']', '.ui-state-default', function (result) {
arrValue[j, i] = result.value;
});
browser.useCss();
writeLogLine('arrAttr:' + i + "|" + j + ' :' + arrAttr);
console.log('arrAttr:' + i + "|" + j + ' :' + arrAttr);
writeLogLine('arrCssProp:' + i + "|" + j + ' :' + arrCssProp);
console.log('arrCssProp:' + i + "|" + j + ' :' + arrCssProp);
writeLogLine('arrValue:' + i + "|" + j + ' :' + arrValue);
console.log('arrValue:' + i + "|" + j + ' :' + arrValue);
}
}
})发布于 2017-12-12 17:35:30
要获取class的属性,可以编写类似的代码
browser.getAttribute(pageObject.getElement('@ui'), "class", function (result) {
if (result.value.indexOf("ui-state-active")!=-1) {
console.log('class name:' + result.value);
}
else { console.log('class name:' + result.value); }});您可以使用任何定位器策略。要使用基于类名的CSS策略,请使用.ui-state-default和标记名。
希望这能有所帮助。
发布于 2020-02-15 06:31:30
就像在Rohit的例子中一样,如果你想使用一个属性值,所有依赖它的命令都需要在回调中。执行arrCssPropj,i= result.value;将不起作用,因为一旦退出回调,该值就会消失。
有关更多信息,请查看https://github.com/nightwatchjs/nightwatch/wiki/Understanding-the-Command-Queue
https://stackoverflow.com/questions/47751503
复制相似问题