我尝试使用噩梦,在节点js中根据链接锚文本中的文字点击链接。
以下是一些示例代码:
var Nightmare = require('nightmare');
var nightmare = Nightmare({show: true})
nightmare
.goto('https://www.wikipedia.org/')
.inject('js', 'C:/users/myname/desktop/nodejs/node_modules/jquery/dist/jquery.js')
.wait(500)
var selector = 'a';
nightmare
.evaluate(function (selector) {
// now we're executing inside the browser scope.
return document.querySelector(selector).innerText;
}, selector) // <-- that's how you pass parameters from Node scope to browser scope
.end()
.then(function(result) {
console.log(result)
})
我真的不清楚为什么所有标签的内部文本都没有返回?我想我可以在.evalution方法中做一个if语句,这样就可以限制链接被点击到&#34;英语&#34;例如。
知道如何根据链接文字点击链接吗?
答案 0 :(得分:0)
据我所知,没有办法只根据它包含的内容选择DOM元素。您需要选择所有锚点(就像您现在正在做的那样)并根据1
过滤到您想要的内容然后直接发出点击事件,或者您可以注入jQuery并使用[0-9]
并innerText
发出点击。
此外,如果您想要所有来自代码的文字,您可能希望使用:contains
。
作为获取所有文本的示例:
$.click()