2012-05-02 50 views
3

我正在使用水豚黃瓜自動化Web應用程序。我必須從下拉菜單中選擇一個值,但是很多時候我會收到類似的錯誤; 「錯誤的參數類型字符串(預期陣列)(類型錯誤)」無法從黃瓜下拉菜單中選擇一個值水豚

我嘗試: 1.

second_option_xpath = ".//*[@id='selecttype']/option[2]" 
second_option = find(:xpath, second_option_xpath).text 
select(second_option, :from => 'selecttype') 

2.

select "Selenium Core", :from => 'selecttype' 

3.

page.find_and_select_option("selecttype", 2) 

4 。

select("selecttype", {"Selenium Core" => 2}) 

頁來源是一樣的東西:

<select id="selecttype"> 
<option value="Selenium IDE">Selenium IDE</option> 
<option value="Selenium Code">Selenium Core</option> 
<option value="Selenium RC">Selenium RC</option> 
<option value="Selenium Grid">Selenium Grid</option> 
</select>" 

請建議我在哪裏做錯了嗎?

感謝

+0

我試着你的第二個解決方案的頁面有你提供的源代碼,但它選擇了預期的選項(即無法重現你的問題)。頁面上是否有其他內容導致衝突?你使用什麼版本的水豚? –

+0

您的第二個選擇 - 「Selenium Code」與可能導致您不匹配的文本「Selenium Core」不匹配 –

回答

7

你試過

page.select('Selenium Core', :from => 'selecttype') 
+0

它適用於我。除了@Atin沒有接受答案,這是正確的答案。 – jonathanrz

0

由於RobertH建議,你應該使用類似page.select,其中網頁是水豚:: Session實例。

當你在你的代碼中調用select時,你正在調用內核模塊的一個方法,該方法混合在每個類繼承的基本Object類中。

該方法需要4個參數,其中3個是IO對象數組;這就是爲什麼它會抱怨錯誤的觀點。