我有单选按钮,如下所示
<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 :(得分:1)
这样做
find(“#Overriden”,:checked =&gt;'checked')。value
我在我的应用中使用了这个
find(“input [name = payment]”,:checked =&gt; true).value
由于我的单选按钮组名称为“payment”,因此我将属性设置为“checked”= true / false
所以如果到现在为止你没有得到任何解决方案,我的答案肯定会对你有用。
答案 1 :(得分:1)
这对我有用:
find("[name='my_field_name'][checked]").value
根据您的表单,您的字段名称可能包括尖括号,这很好:
find("[name='payment[payment_type]'][checked]").value
只需查看页面来源中的<input name="my_field_name">
并使用该名称即可。
答案 2 :(得分:0)
我在前面承认我对水豚不太了解,但我知道html。并且您尝试获取的文本位于元素之外(input
元素没有与其直接关联的文本)。居住在元素之外的元素往往难以获得。既然如此,我建议将以下文字放在label
或span
标记中。所以像这样:
更改HTML
<input id="Overriden" type="radio" value="true" name="Overriden" checked="checked" title="Current Setting"><label>Override</label>
然后选择
这样的东西(这里显示了我缺乏水豚的功能:我不知道它的+
字符串中是否需要css邻近兄弟选择器find
,但是你可以选择相邻的兄弟(下一个元素)到你的水豚input
。)
find("#Overriden[checked='checked'] + label").text
答案 3 :(得分: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]