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

时间:2015-06-12 12:45:12

标签: javascript html 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>

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

InnerText是&#34;更改密码&#34;或者&#34;解锁帐户&#34;

那么如何点击&#34;更改密码&#34;链接。 A标签没有类或名称或任何简单的方法让我使用css选择器。

1 个答案:

答案 0 :(得分:10)

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

casper.click("a[href^='pss.exe']");

href^=value查找具有以指定值开头的href属性的元素。

您也可以尝试使用CasperJS&#39; clickLabel功能:

casper.clickLabel("Change passwords");

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

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

casper.click(x("//a[contains(text(), 'Change passwords')]"));

x是XPath帮助程序实用程序:

var x = require("casper").selectXPath;

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