Wie man von innerHTML mit CasperJS?
Möchte ich, um das Attribut der einzige string in <em>
- tags der HTML-Seite
Ich will "(868)"
1.
casper.then(function() {
var word = require('utils').dump(this.getElementAttribute(x('//*[@id="content"]/div[2]/h4/em'), 'em'));
console.log(word)
});
2.
casper.then(function() {
var word = require('utils').dump(this.getElementAttribute(h4[class="head"], 'em'));
console.log(word)
});
Ich versuchte beides, aber es gibt "null", Wie das problem zu lösen?
InformationsquelleAutor Hyung Kyu Park | 2015-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
<em>
ist nicht ein element-Attribut. Es ist ein element selbst.casper.getElementAttribute(selector, attribute)
ordnungsgemäß abrufen, das Attribut text eines Elements, aber Ihr wollen, um das element text.Können Sie
casper.fetchText(selector)
. Beachten Sie, dassfetchText()
wird verketten der Inhalte von alle übereinstimmenden Elemente in einem string. Wenn Sie das nicht wollen, müssen Sie entweder sicherstellen, dass der Selektor nur entspricht ein einzelnes element oder die Verwendung anderer Funktionen wiecasper.getElementInfo(selector).text
.Ihre zweite snippet kann nicht arbeiten, weil Sie vergessen
"
um den Selektor und wegen den oben genannten Gründen.InformationsquelleAutor Artjom B.
Werfen Sie einen Blick auf die Dokumentation FAQ Kann ich access & manipulieren von DOM-Elementen direkt aus dem CasperJS Umgebung?.
In der die beiden Beispiele, die Sie Hinzugefügt haben, in Ihre Frage, die Sie haben versucht, den
em
element als Attribut derh4
und falsch, weilem
ist ein Kind und nicht Attribut vonh4
tag, so wählen SietextContent
eines Elements Sie können versuchen, zu verwendenquerySelector
mitevaluate
Funktion wie folgt :Hoffe, das hilft.
InformationsquelleAutor Zakaria Acharki