2012-12-06 38 views
0

我有單選按鈕,如下獲取選定的單選按鈕的文字與水豚

<input id="Overriden" type="radio" value="false" name="Overriden" title="Current Setting" disabled="">Inherit 
<input id="Overriden" type="radio" value="true" name="Overriden" checked="checked" title="Current Setting">Override 

如何獲取文本在此改變或繼承

我已經試過

find("#Overriden[checked='checked']").text 
find("#Overriden[checked='checked']").label 
find("#Overriden[checked='checked']").innerHTML 
find("#Overriden[checked='checked']").value (which gives me true or false which I am not after) 

XPATH解決方案歡迎太。

感謝您的幫助!

回答

0

我承認前面我不太瞭解水豚,但我知道html。並且您試圖獲取的文本位於元素之外(input元素沒有與它們直接關聯的文本)。居住在元素之外的這種情況往往很難得到。因此,我建議將以下文字放在labelspan標籤中。因此,像這樣:

更改HTML

<input id="Overriden" type="radio" value="true" name="Overriden" checked="checked" title="Current Setting"><label>Override</label> 

然後像這樣選擇

(這裏就是顯示我缺乏水豚的能力:我不知道,如果它在其字符串find的字符串中取得臨近的兄弟姐妹選擇器+,但是您可以在水豚中選擇相鄰的兄弟姐妹(下一個元素)到input。)

find("#Overriden[checked='checked'] + label").text 
0

感謝您的回答。我已經設法用黑客去追趕它。我無法更改HTML,因爲這是一個簡短的項目,應用程序來自另一個團隊。

settings=[] 
pos=0 
i=0 
all("div.inheritence").each do |elem| 
    within(elem) do 
    all("#Overriden").each do |input_tag| 
    i+=1 
    within(input_tag) do 
     if input_tag[:checked] 
      pos=i 
     end 
    end 
    end 
    end 
    set=elem.text 
    settings =set.scan(/\w+/) 
    end 
settings[pos] 
1

做這樣

發現( 「#重寫」:檢查=> '檢查')。值

我用它像這樣在我的應用程序

find(「input [name = payment]」,:checked => true).value

正如我的單選按鈕組的名稱是「支付」和我做了屬性「檢查」 =真/假

所以我的答案一定會爲你工作,如果你沒有得到這個任何解決方案到現在。

1

這爲我工作:

find("[name='my_field_name'][checked]").value 

根據您的形式,你的字段名稱可能包括尖括號,這是很好的:

find("[name='payment[payment_type]'][checked]").value 

只需在你的頁面的源代碼來看看<input name="my_field_name">並使用該名稱。

相關問題