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 页面或 selenium 代码有什么问题?

4

3 回答 3

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>
于 2013-03-22T10:18:57.620 回答
0

其实,这是我的错。我在 irb 上运行了这些命令,它返回 []。但是当我编写脚本并存储在一个文件中并运行该文件时,它会列出下拉选项的所有对象。

看起来 irb 限制了数组范围。

于 2013-03-22T12:11:30.150 回答
0

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

选择班级:链接

获取选项方法:链接

于 2013-03-22T13:07:40.980 回答