如何在不知道css选择器的情况下使用CasperJS单击链接

sof*_*fun 5 html javascript css-selectors casperjs

<a href="pss.exe?TRANSACTION=CGI_JUMP&amp;SESSDATA=randomstuff&amp;SKIN=default&amp;LANG=en-US">
  Change passwords
</a>

<a href="psk.exe?TRANSACTION=CGI_JUMP&amp;SESSDATA=randomstuff&amp;SKIN=default&amp;LANG=en-US">
  Unlock accounts
</a>
Run Code Online (Sandbox Code Playgroud)

一个链接有一个pss.exe,另一个链接有psk.exe

InnerText是"更改密码"或"解锁帐户"

那么如何点击"更改密码"链接.A标签没有类或名称,也没有任何简单的方法可供我使用css选择器.

Art*_* B. 10

CSS选择器非常通用.您可以根据任意属性的一部分选择元素.所以点击第一个可以通过这种方式实现:

casper.click("a[href^='pss.exe']");
Run Code Online (Sandbox Code Playgroud)

在哪里href^=value查找具有以指定值开头的href属性的元素.

您也可以尝试使用CasperJS的clickLabel函数:

casper.clickLabel("Change passwords");
Run Code Online (Sandbox Code Playgroud)

由于空白,它有时不起作用.

当然还有很多方法可以做到这一点.例如,您可以使用XPath表达式根据其文本选择链接元素:

casper.click(x("//a[contains(text(), 'Change passwords')]"));
Run Code Online (Sandbox Code Playgroud)

x作为XPath的助手实用程序:

var x = require("casper").selectXPath;
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那么你必须确保你在正确的页面上.截取屏幕截图(casper.capture(filename)),看看你是否.