我需要检查类元素是否为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);
}
}
})
答案 0 :(得分:0)
要获取类的属性,可以编写类似的代码
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和tagname。
希望这有帮助。
答案 1 :(得分:0)
就像Rohit的示例一样,如果要使用属性值,则依赖该属性值的所有命令都必须位于回调内部。做arrCssProp [j,i] = result.value;将不起作用,因为一旦退出回调,该值就会消失。
有关更多信息,请查看https://github.com/nightwatchjs/nightwatch/wiki/Understanding-the-Command-Queue