使用 CasperJS 单击第二张图片

Click the second image with CasperJS

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

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

这是我的代码:

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

这段代码只会点击第一个按钮。

但是怎么可能只点击第二个按钮呢?

是,使用 XPath:

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

解释:

  • // "searches" 在每个来自根的后代节点上
  • img[@src="img.png"] 匹配 img(您的两张图片)
  • (nodelist)[2]nodelist
  • 的第二个结果

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

如果图片有相同的父级,并且同一父级下没有其他图片,那么你可以这样做:

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