单击CasperJS的第二个图像

时间:2015-11-14 00:13:50

标签: javascript click casperjs

我的网站上有2个图像按钮,如下所示:

<img class="img" src="img.png" alt="Image">
<img class="img" src="img.png" alt="Image">

这是我的代码:

this.click('img[src="img.png"]');

此代码仅点击第一个按钮。

但是如何只点击第二个按钮呢?

1 个答案:

答案 0 :(得分:2)

是的,使用XPath:

var x = require('casper').selectXPath;
...
this.click(x('(//img[@src="img.png"])[2]'));

说明:

  • //在根
  • 的每个后代节点上“搜索”
  • img[@src="img.png"]匹配img(两张图片)
  • (nodelist)[2]获取nodelist
  • 的第二个结果

关键部分是最后一点,因为CSS选择器一般没有那个运算符,但它们有类似的东西。

如果图像具有相同的父级,并且同一父级下没有其他图像,则可以执行以下操作:

this.click('img[src="img.png"]:nth-child(2)');