如何点击奇怪的选择列表元素?

时间:2012-07-20 10:11:57

标签: ruby selenium-webdriver watir-webdriver

我在选择未识别的下拉菜单中的选项时遇到问题。当我点击下拉箭头时,下拉列表的元素出现,但我无法点击它们,因为我不知道他们的id或我可以使用的其他属性。 这是代码。我无法从select_list中选择:

on_page(RegistrationPage).id_of_select_list_with_options = "8"

@browser.select_list(:name => "field_profile_bday[0][value][day]").select("8")

@browser.select_list(:id => "edit-field-profile-bday-0-value-day").select("8")

错误是:元素当前不可见,因此可能无法与之交互(Selenium :: WebDriver :: Error :: ElementNotVisibleError)

当我点击组合按钮元素下拉列表时,但我无法选择其中的元素,因为它们在选择后出现在组合选择的div中。 (就像组合选择的div中的“Jour”文本一样,它默认存在) 这是html:

    <div class="form-item" id="edit-field-profile-bday-0-value-day-wrapper">
 <label for="edit-field-profile-bday-0-value-day">Jour : <span class="form-required" title="Ce champ est obligatoire.">*</span></label>
 <select name="field_profile_bday[0][value][day]" class="form-select required  date-day" id="edit-field-profile-bday-0-value-day" ><option value="" selected="selected">Jour</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>
</div>
<div class="combo-wrapper" style="display: inline-block; width: 61px; height: 24px; " tabindex="0"><div class="combo-button" style="width: 24px; height: 24px; display: inline-block; ">+</div><div class="combo-selected" style="width: 37px; height: 24px; display: inline-block; ">Jour</div></div>
<div class="combo-button" style="width: 24px; height: 24px; display: inline-block; ">+</div>
<div class="combo-selected" style="width: 37px; height: 24px; display: inline-block; ">Jour</div>
"Jour"
</div>

1 个答案:

答案 0 :(得分:0)

而不是.select(“8”)。尝试类似:

@browser.select_list(:name => "field_profile_bday[0][value][day]").option(:value, '8').select

@browser.select_list(:name => "field_profile_bday[0][value][day]").options[7].select

我认为您需要指向选项元素,然后使用固有的select方法。希望这有效。祝你好运!