【问题标题】:Click the second image with CasperJS用 CasperJS 点击第二张图片
【发布时间】:2015-11-14 00:13:50
【问题描述】:
我的网站上有 2 个图像按钮,如下所示:
<img class="img" src="img.png" alt="Image">
<img class="img" src="img.png" alt="Image">
这是我的代码:
this.click('img[src="img.png"]');
这段代码只会点击第一个按钮。
但是怎么可能只点击第二个按钮呢?
【问题讨论】:
标签:
javascript
click
casperjs
【解决方案1】:
是的,使用 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)');