首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在nightwatch中逐页脚本获取属性或元素

在nightwatch中逐页脚本获取属性或元素
EN

Stack Overflow用户
提问于 2017-12-11 19:03:30
回答 2查看 4.3K关注 0票数 0

我需要检查类元素是否为ui-state-active。

代码语言:javascript
复制
class="ui-state-default ui-state-active" href="#">15</a>

我正在尝试使用所有的方法,但不了解如何编写代码:

代码语言:javascript
复制
.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);
      }
    }
  })
EN

回答 2

Stack Overflow用户

发布于 2017-12-12 17:35:30

要获取class的属性,可以编写类似的代码

代码语言:javascript
复制
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和标记名。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2020-02-15 06:31:30

就像在Rohit的例子中一样,如果你想使用一个属性值,所有依赖它的命令都需要在回调中。执行arrCssPropj,i= result.value;将不起作用,因为一旦退出回调,该值就会消失。

有关更多信息,请查看https://github.com/nightwatchjs/nightwatch/wiki/Understanding-the-Command-Queue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47751503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档