使用 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)');
我的网站上有 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)');