簡體   English   中英

使用xpath選擇所有具有onclick的錨點標簽

[英]select all anchor tags having onclick using xpath

我想使用XPATH在具有“ onClick”功能定義為屬性的網頁上選擇所有錨標簽。 我定位的網頁上有這樣的定位標記

<a href="status.php?op=del&amp;status_id=2" onclick="return confirm('Are you sure you want to delete this item?')">Delete</a>

經過大量搜索,我發現了以下潛在的解決方案,但似乎沒有一個可行。 我嘗試過(失敗了)

//a[@onclick|@href]
//a[onclick]
//a[@onclick]
//a/@*[name()='onclick']
./*[onclick]  #this should have selected all nodes with onclick function

我也試過

//a/@onclick

但這僅返回onclick函數定義,因為我需要整個錨標記。

問題:如何使用XPATH獲取所有具有定義為屬性的onclick函數的錨標記?

XPath //a[@onclick]應該可以工作。

嘗試在瀏覽器的控制台中執行此操作,以警告每個錨點:

(function(){
  var withOnclick = document.evaluate('//a[@onclick]', document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
  var anchor = withOnclick.iterateNext();
  while (anchor) {
    alert(anchor.outerHTML);
    anchor = withOnclick.iterateNext();
  }
}())

如果您使用的是jQuery,則$("a[onclick]")應該可以找到所有帶有onclick的錨點

終於我能夠使用

//a[@onclick]

之前我在錯誤的響應對象上應用了此方法,因此無法獲取鏈接。 要進一步添加,要獲取“ url”值,可以執行以下操作:

HtmlXPathSelector(response).select('//a[@onclick]/@href').extract()

這將返回屬於錨標簽的所有鏈接的列表,該錨標簽具有定義為屬性的“ onclick”功能。

感謝您的回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM