您好,我对QA自动化网络测试相对较新,我尝试使用SO作为最后的手段。
话虽如此,我在从我们的网络应用程序的下拉菜单中选择一个选项时遇到问题。
以下是代码:
<div id="edit-main-user-role-wrapper" class="form-item">
<select id="edit-main-user-role" class="form-select my-dropdown ahah-processed" name="main[user_role]" style="display: none;"></select>
<div class="newListSelected" style="position: static;">
<span class="selectedTxt">
Student
</span>
<ul class="newList" style="top: -136px; height: 136px; left: 0px; display: none;">
<li>
<a class="" href="JavaScript:void(0);"></a>
</li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
当我使用Firefox检查元素检查下拉图标时,它会将我引导到代码中的这一行:span class =“selectedTxt”
我试过通过id,class,xpath和css访问列表都无济于事。
以下是我过去的一些尝试:
@browser.div(:class => 'form-item').select_list(:text => 'Student').fire_event ("on click")
@browser.select_list(:xpath, menu).option(:text, option).click
答案 0 :(得分:2)
带有select标记的元素只有在其中嵌套了带有选项标记的元素时才有意义。通常这些页面中都有很多额外的javascript来提供上下文。
对于不遵循select / option模式的下拉列表,您需要单击下拉列表的元素,然后单击所需的元素,结果将显示该元素。
答案 1 :(得分:1)
这最终对我有用:
@browser.span(:class, "selectedTxt").click # to make the list visible
@browser.element(:xpath, "#{xpath}").click # click on the specified xpath
我知道这可能不是最优雅的答案,但它确实有用!
答案 2 :(得分:1)
不确定你是否还在寻找答案,但其中任何一个都适合我:
@browser.select_list(:id => "you_leaving_us").option(:text => "Other").select
@browser.select_list(:id => "you_leaving_us").option(:value => "8").select
而不是li,我有选择权。希望它有效