Ich schreibe eine kleine Desktop-App in PYQT Python, die einen QWeb View Browser hat. Ich füge eine Funktionalität zu diesem Browser hinzu, die, wenn Benutzer irgendeinen Text mit der Maus auswählt und rechts klickt und Show xpath drückt, ein Javascript ausgeführt wird, um den xpath zu finden. mein Code hier:jquery funktioniert nicht in PyQt
@pyqtSlot()
def slotshowxpath(self):
text = self.selectedText()
if not text:
QMessageBox.information(self,"information","No Text Selected")
else:
frame = self.page().mainFrame().documentElement()
#print frame.toHtml()
#abc = frame.document()
#abc.evaluateJavaScript("alert('"+self.page().selectedHtml()+"');")
frame.evaluateJavaScript("""var data = window.getSelection().anchorNode.parentNode; getXPath(data);
function getXPath(element){
alert(element);
var xpath = '';
for (; (element && element.nodeType) == 1; element = element.parentNode)
{
var id = $(element.parentNode).children(element.tagName).index(element) + 1;
id > 1 ? (id = '[' + id + ']') : (id = '');
xpath = '/' + element.tagName.toLowerCase() + id + xpath;
}
alert(xpath);
return xpath;
}"""
)
diese Abfrage bis $(element.parentNode).children
gut funktioniert, aber nicht für $(element.parentNode).children(element.tagName).index(element) + 1
arbeiten, kann bei der Festsetzung dieses Problems jemand mir helfen?
jquery ist ein Drittanbieter-JavaScript-Bibliothek, so das wird nicht funktionieren, ohne es herunterzuladen und auszuführen –