2016-04-22 35 views
2

我正在寫一個小型桌面應用程序在PYQT python中,它有一個QWeb View瀏覽器。我在此瀏覽器中添加了一項功能,當用戶使用鼠標選擇任何文本並右鍵單擊並按下show xpath時,會執行javascript來查找xpath。 這裏是我的代碼:jquery不能在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;  
    }""" 
     ) 

此查詢工作良好,直到$(element.parentNode).children但不工作的$(element.parentNode).children(element.tagName).index(element) + 1,任何人可以幫助我解決這個問題?

+0

jQuery是一個第三方JavaScript庫,因此如果沒有下載並運行它,這將無法正常工作 –

回答

0

實際上這個問題是有沒有得到內部執行的query.its內部警告語句,但是當我返回值後嘗試過的JavaScript之外,它開始工作