2015-05-15 148 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 

而不是李的,我的選擇。希望它的作品

相關問題