无法获取下拉选项(对象)列表

时间:2013-03-22 09:46:43

标签: ruby selenium-webdriver

我正在尝试获取下拉列表的所有选项。但它正在回归 - []。实际上我的下拉列表有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页面或selenium代码有什么问题吗?

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

实际上,这是我的错。我在irb&amp; amp;它正在返回[]。但是当我写剧本&amp;存储在文件和文件中运行该文件然后它列出了下拉选项的所有对象。

看起来irb将限制放在数组范围内。

答案 2 :(得分:0)

为什么不能使用默认选择类来获取下拉列表中的所有选项?

选择课程:link

获取选项方法:link