我正在try 从名为State的下拉列表中获取所有州的名称.

然而,问题是,我试图生成的列表并不返回下拉列表中的姓名,而是得到一个空值列表.它确实正确地获得了下拉列表中的元素数量,但元素的值为空.

我做错了什么?如何修改我的代码以获得所需的结果?

我目前使用的是Selify,以下是我的代码:

from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = "https://vahan.parivahan.gov.in/vahan4dashboard/vahan/view/reportview.xhtml"
driver.get(url)
dropdown_element = driver.find_element(By.ID,"j_idt31_input")
dropdown = Select(dropdown_element)
option_names = [option.text for option in dropdown.options]
print(len(option_names))
print(option_names)
driver.quit()

推荐答案

唯一需要更改的是,为了从Select下的option个标记中获取文本,您应该使用方法.get_attribute('innerHTML')而不是.text.

以下是完整的解决方案:

from selenium.webdriver import Chrome
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
import selenium.webdriver.support.expected_conditions as EC

driver = Chrome()
url = "https://vahan.parivahan.gov.in/vahan4dashboard/vahan/view/reportview.xhtml"
driver.get(url)
dropdown_element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "j_idt31_input")))
dropdown = Select(dropdown_element)
option_names = [option.get_attribute('innerHTML') for option in dropdown.options]
print(len(option_names))
print(option_names)

输出:

35
['All Vahan4 Running States (34/36)', 'Andaman & Nicobar Island(8)', 'Andhra Pradesh(80)', 'Arunachal Pradesh(26)', 'Assam(36)', 'Bihar(49)', 'Chhattisgarh(30)', 'Chandigarh(1)', 'UT of DNH and DD(3)', 'Delhi(23)', 'Goa(13)', 'Gujarat(37)', 'Himachal Pradesh(113)', 'Haryana(179)', 'Jharkhand(30)', 'Jammu and Kashmir(21)', 'Karnataka(68)', 'Kerala(87)', 'Ladakh(3)', 'Maharashtra(53)', 'Meghalaya(13)', 'Manipur(12)', 'Madhya Pradesh(52)', 'Mizoram(10)', 'Nagaland(9)', 'Odisha(39)', 'Punjab(93)', 'Puducherry(8)', 'Rajasthan(142)', 'Sikkim(8)', 'Tamil Nadu(146)', 'Tripura(9)', 'Uttarakhand(21)', 'Uttar Pradesh(78)', 'West Bengal(56)']

Python-3.x相关问答推荐

math. gcd背后的算法是什么,为什么它是更快的欧几里得算法?

在Python中从mySQL获取多行

CONNEXION.EXCEPTIONS.ResolverError:运行pyz文件时未命名模块

pandas查找另一列中是否存在ID

如何检索与美汤相似的标签中的文本?

PYSMB中的进度条

切片时是否在NumPy ND数组中创建新对象?

如何将python点击参数设置为与选项回调不同的参数的别名?

如何计算累积几何平均数?

添加任意数量的 pandas 数据框

使用Python按照其组/ID的紧密值的递增顺序映射数据框的两列

通过点和线计算CV2 Homography

为什么 List 不能包含多种类型?

在两个数据框之间查找相等的列

Tkinter AttributeError:对象没有属性'tk'

pysftp vs. Paramiko

使用 Sympy 方程进行绘图

如何在不使用 @hydra.main() 的情况下获取 Hydra 配置

如何获得 BeautifulSoup 标签的所有直接子代?

SQLAlchemy:如果不存在则创建模式