python - 当选择标签样式属性设置为显示: none; in python selenium时如何从下拉列表中检索值

标签 python selenium selenium-webdriver web-scraping display

我正在尝试废弃一个网站的所有下拉类别组合。但是,选项的文本属性仅为空白。尽管在检查时,我可以看到每个选项都存在文本。

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]) 

输出:

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

如果我收到文本,我想循环遍历所有值以获得其他下拉菜单的不同组合。

最佳答案

<select>标签的 style 属性设置为 display: none;,因此您可以使用以下代码块来打印选项:

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])

关于python - 当选择标签样式属性设置为显示: none; in python selenium时如何从下拉列表中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49705523/

相关文章:

java - WebDriver - 如何让 webdriver 等到显示文本(不使用定位器)

java - 无法使用 id 和 rel 属性值定位元素

python - PyQt5 对象的 SEGV_MAPERR

python - 如何在普罗米修斯中创建自定义指标?

python - 我的方差方程在 Python 中给出了一个疯狂的输出

Python selenium chromedirver( headless )使用代理(IPV6)和身份验证

python - PyCharm 调用图总是在加载,如何解决?

java - 我可以在 Selenium Webdriver 中使用 Java 发送电子邮件并添加附件吗?

python - Selenium :无法下载文件

java.io.IOException : The filename, 目录名或卷标语法不正确