2012-12-02 61 views
1

這是一個常見問題,我至今一直能夠緩解這個問題。動態設置中的水豚模糊

鑑於動態HTML/PHP是沉重的依賴關係,並且是不可改變的。

我的頁面的源代碼看起來像這樣

<div id="unique"> 
    <div id="ambiguous"> 
     <a href="EditMS(unique record num)">Edit</a> <!--Javascript--> 
    </div> 
    <div id="ambiguous"> 
     <a href="EditApple(unique record num)">Edit</a> <!--Javascript-->  
    </div> 
</div> 

我已經在過去有曖昧的問題,並已能夠通過執行基本JavaScript來減輕他們,但現在覺得,我不能因爲動態記錄號。

問題一:我可以使用xpath或其他方式訪問正確的編輯鏈接嗎? 問題二:我可以以某種方式獲得動態記錄編號,然後執行JavaScript?

回答

1

有幾個方面與CSS來做到這一點。您可以抓取所有匹配的id,或者如果鏈接hrefs總是這樣,您可以使用css屬性匹配。例如:

find('#unique').all('#ambiguous').each do |ambiguous| 
    # conditions in here 
end 

或者你可以使用^=的比賽開始,*=對比賽的地方,併爲$=結束比賽

find('a[href^="Edit"]')find('a[href*="Apple"]')

希望有所幫助。我看到一個正則表達式可以在不久的將來獲得價值。像:

"EditApple293845093405983049".match(/\d+/)[0] 
# => 293845093405983049 
+0

正則表達式匹配做到了!謝謝。 – TangibleDream

0

要回答的問題1:

find(:xpath, "//unique/div[@id=ambiguous][0]") is what you're looking for.

+0

也許,[0]代表模糊容器的第一次出現? – TangibleDream

+0

是的,比如[1]是第二次出現。 – geekonaut