Javascript 根据CasperJS中的文本内容单击某个元素

Javascript 根据CasperJS中的文本内容单击某个元素,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,我已从网页中检索到以下内容: <a href="#" onclick="onClkRdMsg(this, 'IPM.Note', 1, b4);">next page</a> 什么是?您必须检查页面上的每个链接,查看文本“下一页”: casper.evaluate(函数(){ var tags=document.getElementsByTagName(“a”); var searchText=“下一页”; var发现; 对于(var i=0;i

我已从网页中检索到以下内容:

<a href="#" onclick="onClkRdMsg(this, 'IPM.Note', 1, b4);">next page</a>

什么是

您必须检查页面上的每个链接,查看文本“下一页”:

casper.evaluate(函数(){
var tags=document.getElementsByTagName(“a”);
var searchText=“下一页”;
var发现;
对于(var i=0;i
基于

casper。单击(“[?=”下一页“])使用CSS选择器调用单击。CSS选择器无法根据元素的内容(文本)匹配元素

不过,使用XPath表达式很容易:

var x = require('casper').selectXPath;
...
casper.click(x('//*[contains(text(),"next page")]'));
如果确定搜索文本周围没有空格,则也可以使用
casper.clickLabel()


检查并使用CasperJS v 1.1.0-b5和PhantomJS 2.1.1最好使用
标记[i].textContent.indexOf(searchText)!=-1
以防搜索词周围有空格。给出的答案有帮助吗?
casper.evaluate(function(){
    var tags = document.getElementsByTagName("a");
    var searchText = "next page";
    var found;

    for (var i = 0; i < tags.length; i++) {
      if (tags[i].textContent == searchText) {
        found = tags[i];
        found.click();
        break;
      }
    }
})
var x = require('casper').selectXPath;
...
casper.click(x('//*[contains(text(),"next page")]'));
casper.clickLabel('next page');