当已经使用 CasperJS 选择元素时断言存在 css class

Assert presence of a css class when the element is already selected with CasperJS

有没有办法断言 css class 存在或不存在,因为我已经通过应用到它的另一个 class 找到了元素?

这是一个示例 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>

其中 'selectable-options' 是根据某些条件添加到元素的 class,我想根据我正在测试的工作流程断言它是否存在。 我使用 xpath 来访问这个元素。 我如何实现这一目标?

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

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

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

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

如果您使用 css 选择器定位所需的元素,方法 returns 具有节点属性的对象。 class 属性也可用,因此您将能够检查 className string

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