使用casperjs检查元素

时间:2013-10-26 21:42:17

标签: javascript dom css-selectors phantomjs casperjs

我正在尝试使用casperjs来检查DOM中是否存在以下元素:

<b>Bar</b>

使用选择器和casper.exists是否有一种简单的方法可以做到这一点? casperjs文档非常清楚。

3 个答案:

答案 0 :(得分:7)

casper.exists()的基本用法是向它传递一个选择器字符串,它将返回true或false以指示是否找到任何与该选择器匹配的元素。

但是,在您的情况下,找到此元素的唯一实用选择器是b,因此如果您专门寻找包含此文本的b元素,那么您需要指定某种形式的上下文(例如父元素),或者使用XPath测试此元素的存在,这允许您通过文本内容测试元素:

var x = require('casper').selectXPath;

if (casper.exists(x('//b[text()="Bar"]'))) {
    // <b>Bar</b> exists
}

答案 1 :(得分:0)

如果您需要检查其他元素。 Visit 并学习如何通过XPath找到一个元素,并根据BoltClock的答案。

例如:使用class =“a-last”

检查li
 if (casper.exists(x('//li[@class="a-last"]'))) {
    console.log("find the element");    
 }

答案 2 :(得分:0)

如果您尝试选择模糊或非特定的选择器(无类或ID),请使用CSS Path为我工作,例如:

this.echo(this.getElementAttribute('html body div.main-container div.central-container div.articles-home h4));

在这种情况下,将打印文章中的标题。在exists()中使用它时,它的工作方式相同。