在Selenium中,有没有办法从下拉菜单中获取文本,然后将其放入Python的列表中?
假设:
<select id="zoo">
<option value="30">
Lion
</option>
<option value="10">
Elephant
</option>
<option value="5">
Zebra
</option>
</select>
如何将Lion,Elephant和Zebra放入列表中?
答案 0 :(得分:1)
使用selenium.webdriver.support.select.Select()
并获取.options
:
options
返回属于此选择标记的所有选项的列表
from selenium.webdriver.support.select import Select
select = Select(driver.find_element_by_id('zoo'))
print [option.text for option in select.options]
其中driver
是webdriver
个实例。
DEMO(使用this w3schools page(是的,抱歉w3schools :)):
>>> from selenium import webdriver
>>> from selenium.webdriver.support.select import Select
>>> driver = webdriver.Firefox()
>>> driver.get('http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select')
>>> driver.switch_to.frame('view')
>>> select = Select(driver.find_element_by_tag_name('select'))
>>> [option.text for option in select.options]
[u'Volvo', u'Saab', u'Opel', u'Audi']
请注意,此页面上的select
元素没有id
,因此我只是使用find_element_by_tag_name()
找到它。另请注意,那里有iframes
,因此我必须切换到相应的iframe
才能找到该元素。
希望有所帮助。
答案 1 :(得分:0)
这对我有用:
select = Select(driver.find_element_by_tag_name('select'))
text_list = []
for option in select.find_elements_by_tag_name('option'):
text_list.append(option.text)
感谢您的帮助!