1
我使用硒客戶端來測試網站。我想要獲得所有匹配特定選擇器的標籤,然後將href屬性返回到數組中。任何人都可以告訴我我該如何做到這一點?例如,這返回第一個匹配的一個標籤的href:從硒客戶端中的所有匹配元素收集一個特定的屬性?
browser.get_attribute "//a[contains(@id,'friendImageLink')]/@href"
=> "http://asite/some-path"
我可以做上述並用HREF字符串數組結束?這感覺就像它應該很容易,但我不能工作了:/如果我這樣做的螢火
$x("//a[contains(@id,'friendImageLink')]/@href")
我得到對象的數組回來,所以感覺就像我接近。
感謝,最大
編輯 - 我以爲計數匹配的元素,然後通過他們迭代的,但我似乎無法選擇的第n個元素的。例如,有問題的網頁有38個標籤匹配「包含」的條件,但如果我這樣做
browser.get_attribute "//a[contains(@id,'friendImageLink')][2]/@href"
我得到一個錯誤信息說 硒:: CommandError:OR:元/後裔::一[包含(@ id,'friendImageLink')] [2] /未找到
編輯 - 我只是想出了一個辦法。 @browser.get_all_links
返回數組中頁面上所有鏈接的所有id。然後,我可以找出我想要的,並遍歷結果過濾數組,獲取每個鏈接,然後得到它的href。例如
@browser.get_all_links.grep(/friendImageLink/).collect{|link_id| @browser.get_attribute("//a[@id='#{link_id}']/@href") }
+1以獲得正確的解釋。 – 2010-10-03 20:38:38
aaahhhh ...謝謝。 – 2010-10-04 10:23:42
@Max Williams:你很好。 – 2010-10-04 13:22:03