[英]select all anchor tags having onclick using xpath
我想使用XPATH在具有“ onClick”功能定義為屬性的網頁上選擇所有錨標簽。 我定位的網頁上有這樣的定位標記
<a href="status.php?op=del&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.