2015-05-15 145 views
1

您好,我对QA自动化Web测试相对比较陌生,我尝试使用SO作为最后的手段。Ruby/Watir从下拉菜单中选择一个选项

这就是说我有问题选择从我们的web应用程序的下拉菜单中选择。

这里是下面的代码:

<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检查元素它引导我此行的代码:跨度类=“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

我已经看过其他各种与下拉有关的问题,但没有人能够帮助我解决我的问题。 – Frank

+0

仍在努力,但我取得了进展。这至少会“下降”下拉菜单。 @ browser.span(:class,“selectedTxt”)。click – Frank

回答

2

与选择标签的元素是否有与嵌套在选项标签内容应才有意义。这些页面通常会在其中添加大量额外的JavaScript以提供上下文。

对于不遵循选择/选项模式的下拉列表,您需要单击下拉列表中的元素,然后单击您希望看到的元素作为结果。

0

这是什么最终为我工作:

@browser.span(:class, "selectedTxt").click # to make the list visible 
@browser.element(:xpath, "#{xpath}").click # click on the specified xpath 

我知道这可能不是最优雅的答案,但它的工程!

1

不知道,如果你还在寻找答案,但无论这些工作对我来说:

@browser.select_list(:id => "you_leaving_us").option(:text => "Other").select 
@browser.select_list(:id => "you_leaving_us").option(:value => "8").select 

而不是李的,我的选择。希望它的作品

相关问题