当使用CasperJS选择元素时,断言存在css类

时间:2015-04-02 07:16:30

标签: javascript casperjs ui-automation

有没有办法断言css类的存在与否,因为我已经通过应用了另一个类来定位元素?

这是一个dom结构示例 -

<div class="large-20 small-20 small-centered large-centered columns">
    <div class="row">
      <div class="divider1"></div>
      <input name="options" type="checkbox" value="2" class="selectable-options grid-value" />
    </div>
</div>

&#39; selectable-options&#39;是基于某些条件添加到元素的类,我想基于我正在测试的工作流来断言它的存在与否。 我使用xpath来到达这个元素。 我该如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

如果你有一个要检查的元素和类的css选择器 - 你可以简单地将它们组合成一个选择器并检查这个元素是否存在于casper.test.assertExists

var selector = ".some-element",
    className = "class-to-check"

// finding '.some-element.class-to-check'
casper.test.assertExists(selector + "." + className);

或者您可以尝试getElementInfo,它会提供有关目标元素的更多信息

如果使用css选择器找到所需元素,则该方法返回具有节点属性的对象。 class属性也可用,因此您将能够检查className字符串

casper.then(function(){
    var info = this.getElementInfo("#some-element");
    var className = info.attributes["class"] || "";
    this.test.assert(className.indexOf("class-to-check") > -1);
});