我正在尝试使用xpath获取选择列表值,因为id在exists函数中给出了false,但是没有工作
puts $browser.select_list(:xpath,"//*[@id='numType']").exists?
number = $browser.select_list(:xpath,"//*[@id='numType']").options.map(&:text)
number_list = Array.new
number.each do |number_text|
number_list << "#{number_text}"
end
HTML code:
<div id="forwardRs">
<div class="forwardR">
<div id="forwardT" class="rc1">
<select id="forward_types" name="Foward Types" tabindex="5" onchange="changeForwardTypes(this);">
<option value="unconditional">unconditional</option>
<option value="busy">busy</option>
<option value="reply">reply</option>
<option value="reachable">reachable</option>
<option value="other">other</option>
</select>
</div>
<div id="numtype" class="rc1" style="">
<select id="numType" onchange="changeNumType(this);" name="numbers" tabindex="5">
<option value="ex">Ex</option>
<option value="in">In</option>
</select>
</div>
<div id="rule" class="rc1" style="">
<input id="tel" type="text" value="" size="20" name="tel" tabindex="2" onchange="changeNumberRule(this);">
</div>
<div id="removeForwardRule" class="rc3">
<a onclick="removeForwardRule(this);">
<img src="../../images/delete.png">
</a>
我该怎么做?
罐
答案 0 :(得分:1)
忽略我最初在这里写的内容,因为我完全没有成功地使.options
方法返回选择列表中的任何选项,而.selected_options
方法返回所选的选项就好了
通过执行以下操作,我已成功从您的选择列表中获取选项:
select_list_options = $ff.elements_by_xpath("//select[@id='numType']/option")
为您提供选择列表中的选项数组。
要从我做过的那些元素中获取文本
select_list_options_text = Array.new
select_list_options.each do |option|
select_list_options_text << option.text
end
不是一个非常漂亮的答案,但是嘿。
我完全不知道为什么.options
对我不起作用,但你可能遇到同样的问题。
答案 1 :(得分:1)
我使用问题中的html创建了html文件,而我的Firefox 8出于某种原因认为option
标记不在select
标记内。请参阅随附的屏幕截图。