2017-01-31 14 views
0

リンクのアンカーテキスト内のテキストに基づいてリンクをクリックするには、ノードjsでナイトメアを使用しようとしています。私はすべてのタグの内部テキストが戻っていない理由については不明だ本当にnightmare.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ステートメントを実行して、リンクをクリックして「英語」にするなどの制限があると考えました。

リンクテキストに基づいてリンクをクリックする方法はありますか?

答えて

0

私が知る限り、DOM要素を含むものだけを選択する方法はありません。 innerTextに基づいて任意のアンカーを選択し、クリックイベントを直接発行するか、またはjQueryを挿入して:contains$.click()を使用してクリックを発行する必要があります。

また、タグのテキストのすべてが必要な場合は、document.querySelectorAll()とします。

.evaluate(function (selector) { 
    return document.querySelectorAll(selector) 
    .map(element => element.innerText); 
}, selector) 
:テキストのすべてを取得するための一例として、

関連する問題