一尘不染

选择标记样式属性设置为显示时,如何从下拉列表中检索值:在pythonselenium中

selenium

我正在尝试从一个站点中删除下拉列表的所有类别组合。但是,选项的文本属性仅作为空白出现。尽管在检查时,我可以看到每个选项都包含文本。

from selenium import webdriver
from selenium.webdriver.support.ui import Select

driver = webdriver.Chrome()
driver.get('https://www.fiyo.nl/')

driver.find_element_by_xpath('//*[@id="select_device_chosen"]/a').click()
select = Select(driver.find_element_by_xpath('//*[@id="select-device"]'))
print ([o.text for o in select.options])

输出:

['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']

如果我收到文字,则想遍历所有值以获取其他下拉菜单的不同组合。


阅读 264

收藏
2020-06-26

共1个答案

一尘不染

<select>标签具有 风格 属性集为 显示:无; 因此您可以使用以下代码块来打印选项:

driver.find_element_by_xpath('//*[@id="select_device_chosen"]/a').click()
element = driver.find_element_by_xpath("//select[@id='select-device']")
driver.execute_script("arguments[0].removeAttribute('style')", element)
select = Select(driver.find_element_by_xpath("//*[@id='select-device']"))
print ([o.text for o in select.options])
2020-06-26