Web ページをクロールするためにナイトメア(phantomjs ラッパー)を使用していますが、次のエラーが発生します。
ファントム stdout: TypeError: undefined はコンストラクターではありません ('$('a[href="/dien-thoai/apple-iphone-6-plus-64gb-ban-quoc-te--pid975.html"]' を評価しています) .get(0).closest('セクション')')
var Nightmare = require('nightmare');
var bandcamp = new Nightmare()
.useragent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36")
.goto('http://viettelstore.vn/danh-muc/dien-thoai-010001.html#SpecOrder=')
.wait()
.click('a[href="/apple-mid1.html"]')
.wait()
.screenshot('viettelstore.png')
.evaluate(function () {
var x = $('a[href="/dien-thoai/apple-iphone-6-plus-64gb-ban-quoc-te--pid975.html"]').get(0).closest('section')
var y = $(x).find('.b-price.b-price_size3').find('.b-price__num').text()
return {name: y};
},function (value) {console.log(value.name);})
.run(function (err, nightmare) {
if (err) return console.log(err);
console.log('Done!');
});
クリックした後のページのスクリーンショットは、期待どおりです。ブラウザのコンソールでテストすると、jquery コードは正常に実行されます。問題はphantomjsにあると思います