Ich habe für ein paar Tage für dieses eine Problem gekämpft. Ich benutze Nightmarejs, um auf ein Bild auf einer Ebay-Produktseite zu klicken. Wenn Sie darauf klicken, wird die Vollversion des Bildes in einem Leuchtkasten angezeigt.Klicken Sie auf ein Bild mit nightmarejs
Nightmarejs wird einfach nicht auf dieses Bild klicken! Ich kann auf andere Links klicken, aber das Bild wird nie angeklickt, so dass kein Leuchtkasten erscheint. Dies ist das Bild, das ich zu klicken bin versucht:
Hier ist mein Code:
var Nightmare = require('nightmare');
var selector1 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg';
var selector2 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr';
var selector3 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr img#icImg';
var selector4 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr #vi_zoom_trigger_mask';
var selector5 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr td.img.img500';
var selector5 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr a#linkMainImg #mainImgHldr table.img.img500';
var selector6 = '#PicturePanel';
var selector7 = '#PicturePanel div.pp-ic.pp-ic500';
var selector8 = '#PicturePanel div.pp-ic.pp-ic500 table';
var selector9 = '#PicturePanel div.pp-ic.pp-ic500 table tbody';
var selector10 = '#PicturePanel div.pp-ic.pp-ic500 table tbody tr';
var gallery = '#vi_main_img_fs';
var run = function() {
try {
var nightmare = new Nightmare({show: true});
nightmare.goto('http://www.ebay.com/itm/Newton-Distance-S-III-Lime-Red-Running-Shoes-Mens-M-New-155/311559183260?hash=item488a5fdb9c&_trkparms=5374%3AFeatured%7C5373%3A0')
.wait(2000).click(selector1)
.wait(1000).click(selector2)
.wait(1000).click(selector3)
.wait(1000).click(selector4)
.wait(1000).click(selector5)
.wait(1000).click(selector6)
.wait(1000).click(selector7)
.wait(1000).click(selector8)
.wait(1000).click(selector9)
.wait(1000).click(selector10)
.wait(1000)
.evaluate(function() {
return document.documentElement.innerHTML;
}).end()
.then(function(html) {
console.log('html: ', html);
});
} catch(e) {
console.log('error: ', e);
}
};
run();
Ich habe versucht, alle möglichen Wähler fast haben. Ich bekomme auch keine Ausnahme vom Albtraum (wenn es den Selektor nicht findet, wirft er einen).
Ich bin wirklich auf diesem einen ratlos.
'# vi_zoom_trigger_mask' ist nicht sichtbar, wenn Sie den Mauszeiger über sie ... vielleicht können Sie versuchen. – mihai
@mihai Es gibt keine Möglichkeit, in Alptraum zu schweben. – bmills
ist es möglich [dies] (http://stackoverflow.com/questions/16915485/how-to-use-phantomjs-to-simulate-mouse-hover-on-a-html-element) zu tun? Wenn nicht, könnte dies eine Einschränkung der Bibliothek sein. – mihai