繁体   English   中英

在 Selenium PYTHON 中使用 span id 从下拉列表中选择一个值

[英]Selecting a value from drop down with span id in Selenium PYTHON

我已经尝试了一段时间并搜索了不同的论坛,但我找不到任何代码片段来执行此操作。

我有一份报告,其中需要在 python 中使用 Selenium 通过下拉列表选择选项。 下面是 HTML 结构

 <div align="center"> Select Fruit</div> <p align="center"><br> <span id="0e6b87875e914a5f8d72bbee6844bea3" style="color: black; font-family: Arial; font-size: 13px; font-weight: normal; font-style: normal; width: 113px; display: inline-block;" class="sf-element sf-element-control sfc-property sfc-dropdown"> <div class="sf-element sf-element-dropdown" title="" style="position: relative; width: 100px;"> <div class="sf-element sf-element-icon" style="position: absolute; top: 1px; left: 91px; height: 17px; width: 17px;"> <svg width="17px" height="17px"><path d="M4,6 l7,0 l-3.5,3.5 z" fill="currentColor" stroke-width="1" transform="scale(1.1333333333333333,1.1333333333333333)" class="Down"></path></svg> </div> <div class="sf-element sf-element-text-box" style="display: inline-block; word-wrap: break-word; width: 83px;">(None)</div> <select class="sf-dropdown-select" style="color: rgb(0, 0, 0); font-family: Arial; background-color: rgb(248, 248, 248);"> <option value="0" selected="selected">(None)</option> <option value="1">Apple</option> <option value="2">Mango</option> <option value="3">Grapes</option> </select> </div> </span><br></p>

我尝试过使用 css 选择器和 XPath 的不同方法,但似乎没有任何效果。 下面是我试过的代码

driver.find_element_by_xpath('//*[@id="0e6b87875e914a5f8d72bbee6844bea3"]/div/select/option[@value = "Mango"]')

还有不同的变体,如选项 [2] 和使用 css 选择器,但它总是给出 NoSuchElementException。

有人可以分享一些对此的见解吗?

谢谢

添加 text()="Mongo" 而不是 @value="Mongo"

 driver.find_element_by_xpath('//[@id="0e6b87875e914a5f8d72bbee6844bea3"]/div/select/option[text() = "Mango"]').click()

在处理 SELECT 元素时,有一个辅助类Select ,这使它变得更加容易。

select = Select(driver.find_element_by_css_selector("#0e6b87875e914a5f8d72bbee6844bea3 select"))
select.select_by_visible_text("Mango")

dropdown显然在<Select>标签内。 因此,使用Select类会很方便,如下所示:

//import
from selenium.webdriver.support.ui import Select
//code block
selectOption = Select(driver.find_element_by_class_name("sf-dropdown-select"))
selectOption.select_by_visible_text("Mango")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM