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