2013-03-22 69 views
1

我試圖獲得下拉列表中的所有選項。但它回來了 - []。在實際我的下拉列表中有250個選項(國家名單)無法獲得下拉選項列表(對象)

以下是我的HTML頁面的內容 -

<select id="country" selected="" name="country"> 
    <option value="U0">Unknown</option> 
    <option value="AP">Asia/Pacific Region</option> 
    <option value="EU">Europe</option 
    . 
    . 
    . 

要獲得所有選項,我寫了下面 -

element = driver.find_element(:id, "country") 
countries = element.find_elements(:tag_name, "option") 

但它返回空數組 - []實際上,它應該返回對象數組。

Selenium無法從下拉菜單返回大量選項嗎?或者,在HTML頁面或硒代碼中是否有錯誤?

回答

0

您發佈的內容,下列作品沒有任何問題。 我建議你在html文件中添加選項,直到出現錯誤。

require "selenium-webdriver" 
require 'ap' 

driver = Selenium::WebDriver.for :firefox 
driver.get("file:///c:/ruby193/test/selenium/test.html") 
element = driver.find_element(:id, "country") 
countries = element.find_elements(:tag_name, "option") 
ap countries 

# [ 
#  [0] #<Selenium::WebDriver::Element:0x4033eddc id="{87044904-9da3-4194-9440-b585e9dabfc2}">, 
#  [1] #<Selenium::WebDriver::Element:0x..f2be9452 id="{6692657d-df40-4dd5-a8ad-a2dbadda18b5}">, 
#  [2] #<Selenium::WebDriver::Element:0x..fb1e0e416 id="{8886c68e-5c4f-45a5-8220-4795a73cabbe}"> 
# ] 

這裏的test.html

<select id="country" selected="" name="country"> 
    <option value="U0">Unknown</option> 
    <option value="AP">Asia/Pacific Region</option> 
    <option value="EU">Europe</option> 
</select> 
+0

其實,我創建的測試頁與250個國家選項下拉。當我在測試頁面上運行代碼時(正如我們上面所討論的那樣),它列出了所有的對象。但是,當我運行與我的網站相同的代碼來自動化時,它會返回空數組 - []。我沒有看到發生了什麼問題。謝謝,彼得的幫助。 – TDHM 2013-03-22 11:00:37

+0

然後你可以發佈你的網站的網址? – peter 2013-03-22 13:23:05

0

其實,這是我的錯。我在irb &上運行了這些命令,它返回[]。但是當我編寫存儲在文件&中的腳本&運行該文件時,它列出了下拉選項的所有對象。

看起來irb限制陣列範圍。

0

爲什麼不能使用默認選擇類來獲取下拉列表中的所有可用選項?

選擇類別:link

獲取選項方法:link