【发布时间】:2016-03-22 06:40:02
【问题描述】:
我在从下拉列表中选择选项时遇到问题。
HTML 是这样的:
<div unselectable="on" class="k-widget k-multiselect k-header" style="" title="">
<div unselectable="on" class="k-multiselect-wrap k-floatwrap">
<ul class="k-reset" unselectable="on" role="listbox"></ul>
<input style="width: 25px" class="k-input k-readonly" accesskey="" autocomplete="off" role="listbox" aria-expanded="false" tabindex="0" aria-owns="" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="28dfc7ec-69a2-4a95-ba29-1f94e899c7e3">
<span class="k-icon k-loading k-loading-hidden"></span>
</div>
<div data-bind="source: getTreeValues, value: selectedCrmAttributes.DYN_" data-text-field="name_i18n" data-value-field="attributeId" data-value-primitive="false" data-auto-bind="true" data-role="interestselect" multiple="multiple" style="display: none;" aria-disabled="false" aria-readonly="false">
<option value="DYN_#76ed2b3f-4d64-4d07-8ba7-ab6f133e0c70">one.csv</option>
<option value="DYN_#6f914af1-ba58-4c40-99fe-e874bdf9c47b">two.csv</option>
<option value="DYN_#4cd908d0-6c61-4a15-84e7-f113aa7a8ed4">three.csv</option>
<option value="DYN_#c137cfad-81af-4164-90b1-a518a7595baa">four.csv</option>
</div>
<span style="font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 13px; font-stretch: normal; font-style: normal; font-weight: 300; letter-spacing: normal; text-transform: none; line-height: 17.0333px; position: absolute; visibility: hidden; top: -3333px; left: -3333px;"></span>
</div>
我试过用这种方式选择选项
And(/^selecting (.*) from (.*)$/) do |item, selection|
find('.dgr-dimensions-row', :text=>selection).find('.k-widget.k-multiselect.k-header').click
#expect(page).to have_content(item) -> returns true
select(item)
end
项目是我要选择的选项,选择是从我要选择项目的位置过滤。
示例:如果我有一个过滤器文件并且选项是一、二、三、四。 然后选择是 File 并且项目是 one 例如。
我正在使用
cucumber 2.1.0
ruby 2.1.6
nokogiri 1.6.6.2
capybara 2.4.4
selenium-webdriver 2.47.1
提前致谢!
已编辑
我想通过文本选择选项,ruby 步骤可以重复使用。我有很多类似的领域,如果我可以重复使用相同的步骤,那将会很有用。
已编辑 2
<ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="true" aria-live="polite" data-role="staticlist" role="listbox" style="overflow: auto; height: auto;">
<li tabindex="-1" role="option" unselectable="on" class="k-item k-state-focused" data-offset-index="0" id="96c13cd6-8365-4e73-a134-6395988822f7">one.csv</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="1">two.csv</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="2">three.csv</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="3">four.csv</li>
</ul>
【问题讨论】:
-
你应该使用jquery来点击。例如:
evaluate_javascript("query") -
您想从 4 个选项值中选择一个吗?取决于什么?一般来说,要选择一个选项,你可以简单地做
find("the css selector or the xpath of the option you want to select").select_option或find("option[value='the value you want to select']").click -
我想通过它的文本选择项目,因为我有类似的字段,然后我可以重复使用该步骤。
标签: ruby automation cucumber capybara