2014-01-09 82 views
0

嘗試點擊並選擇與水豚下拉菜單。但下拉是動態的,沒有硬編碼選項。到目前爲止,在我的嘗試中,我無法從中選擇任何選項。我試圖選擇下拉列表中的第一個或第二個值。的HTML是:嘗試點擊並選擇下拉菜單與水豚

<span class="dojoComboBoxOuter dj_gecko" _="whitespace and CR's between tags adds in FF" style="width: 400px;"> 

<input dojoattachpoint="comboBoxValue" value="" name="personSelect" tabindex="-1" style="display:none"></input> 
<input dojoattachpoint="comboBoxSelectionValue" value="" name="personSelect_selected" tabindex="-1" style="display:none"></input> 
<input class="dojoComboBox" type="text" dojoattachpoint="textInputNode" dojoattachevent="key:_handleKeyEvents; keyUp: onKeyUp; compositionEnd; onResize;" autocomplete="off" style="width: 400px;"></input> 
<img class="dojoComboBox" vspace="0" hspace="0" src="/ess/assets/static/dojo-0.4.3-custom-4.1.6/src/widget/templates/images/combo_box_arrow.png" dojoattachevent="onMouseUp: handleArrowClick; onResize;" dojoattachpoint="downArrowNode" style="width: 14px; height: 14px;"></img> 

</span> 

爲下拉的小箭頭是最後的IMG類,它被稱爲「combo_box_arrow.png」,試圖選擇,但沒有運氣。

想法?

+0

你能發佈你的測試代碼嗎? –

回答

0

我不知道水豚,但一般的想法是點擊下拉圖片,然後找到組合框下的所有輸入元素,並選擇一個你想選擇的。這是我如何在Java中做到這一點。我相信你可以重新使用CSS選擇器來查找水豚中的元素。

WebElement drop_down_image = driver.findElement(By.cssSelector("img.dojoComboBox")); 
drop_down_image.click(); 
List<WebElement> options = driver.findElements(By.cssSelector("span.dojoComboBoxOuter>input[name^='personSelect']")); 

for(WebElement option:options) { 
     if(option.getText().equals("Drop down I want to select")) { 
      option.click(); 
      break; 
     } 
} 

請注意,我在編輯器中直接編寫了這段代碼,所以可能會出現編譯錯誤,但您明白了!

0

水豚不會(默認情況下)讓你與隱藏的元素交互,所以你需要點擊圖像,然後與輸入交互。類似這樣的:

When /^(?:|I)choose the (\d+)(?:st|nd|rd|th) item from the dropdown"$/ do |position| 
    position = position.to_i - 1 
    within '.dojoComboBoxOuter' do 
    all('input').at(position).click 
    end 
end