【发布时间】:2020-03-08 06:31:41
【问题描述】:
我需要在一个选择标签下获取一个选项的属性。但是,我无法找到选择标签,因为选择标签没有 id。
<div class="dropdown-wrapper">
<div class="mobile-dropdown">
<span class="mobile-arrow"></span>
<select>
<option data-url="/series/17948/commentary/1115802/new-zealand-vs-
pakistan-1st-odi-pak-in-nz-2017-18?innings=1" value="NZ Innings">NZ
Innings
</option>
<option data-url="/series/17948/commentary/1115802/new-zealand-vs-
pakistan-1st-odi-pak-in-nz-2017-18?innings=2" value="PAK
Innings">PAK Innings</option>
</select>
</div>
</div>
我尝试了两种方法
使用 find_elements_by_tag_name('select') 定位选择标签,然后获取选择元素内的所有文本,然后使用 find_elements_by_xpath ("//option[contains(text(), text)]" 定位选项标签)。找到选项标签后,我可以将 get_attributes 用于所需属性。这不仅看起来很复杂,而且有时也不起作用,因为它没有给出选项文本。
我尝试通过 Select(find_element_by_css_selector("class") 使用 Select。使用的类名来自 div 标签。然后使用 select.select_by_index(1).getattribute()。但是,我得到了一个错误“选择未定义”。
第一个代码
elem=driver.find_elements_by_tag_name('select')
options=[x.text for x in elem]
first_inn=options[2].split('\n')[1]
second_inn=options[2].split('\n')[0]
option=driver.find_elements_by_xpath("//option[contains(text(), first_inn)]")
option[7].get_attribute('data-url')
第二个代码
select = Select(driver.find_element_by_css_selector("mobile-dropdown"))
first_inn=select.select_by_index(1).get_attribute('data-url')
second_inn=select.select_by_index(0).get_attribute('data-url')
对于第一个代码,我收到 ['','',''] 并且对于第二个代码,我收到一条错误消息“名称 'Select' 未定义”
【问题讨论】:
-
你想获得 NZ Innings 和 PAK Innings 吗?
-
是的,我正在尝试获取 NZ 和 PAK 局的评论网址
-
试试我在回答中提到的
xpath。
标签: python selenium select css-selectors webdriverwait