Selenium-Python-选择下拉菜单meun选项-无ID或名称

Selenium-Python-选择下拉菜单meun选项-无ID或名称,python,selenium,drop-down-menu,Python,Selenium,Drop Down Menu,我试图在下拉菜单中选择和元素: HTML是: <div class="col-lg-6"> <select data-bind="options: indicator_type_list,value: indicatorType,optionsCaption: 'Choose...', disable: $root.mode().isReadOnly()"> <option value="">Choose...</optio

我试图在下拉菜单中选择和元素:

HTML是:

<div class="col-lg-6">
       <select data-bind="options: indicator_type_list,value: indicatorType,optionsCaption: 'Choose...', disable: $root.mode().isReadOnly()">
        <option value="">Choose...</option>
        <option value="Malicious E-mail">Malicious E-mail</option>
        <option value="IP Watchlist">IP Watchlist</option>
        <option value="File Hash Watchlist">File Hash Watchlist</option>
        <option value="Domain Watchlist">Domain Watchlist</option>
        <option value="URL Watchlist">URL Watchlist</option>
        <option value="Malware Artifacts">Malware Artifacts</option>
        <option value="C2">C2</option>
        <option value="Anonymization">Anonymization</option>
        <option value="Exfiltration">Exfiltration</option>
        <option value="Host Characteristics">Host Characteristics</option>
        <option value="Compromised PKI Certificate">Compromised PKI Certificate</option>
        <option value="Login Name">Login Name</option>
        <option value="IMEI Watchlist">IMEI Watchlist</option>
        <option value="IMSI Watchlist">IMSI Watchlist</option>
       </select>
</div>

但是,我似乎找不到在下拉列表中选择项目的元素


感谢您的帮助

有多种方法可以定位此
选择
元素

这里有一种方法-找到
select
元素,该元素内部有一个特定的
选项

from selenium.webdriver.support.select import Select

option_value = "Malicious E-mail"

select_element = browser.find_element_by_xpath("//select[option[@value = '%s']]" % option_value)
select = Select(select_element)
select.select_by_value(option_value)

您可以使用
Select
,方法是为其提供带有
Select
标记的web元素

select = Select(browser.find_element_by_css_selector(".col-lg-6 > select")) #finds the select tag
select.select_by_value("Malicious E-mail")
#or
select.select_by_visible_text("Malicious E-mail")

@alecxe是一个很好的定位器,但是
Select
需要Select标签。我不反对这一点。只需指出,
col-lg-6
是一个来自bootstrap的面向“布局”的类。通常不建议依赖面向布局的类或其他属性。谢谢。最初盖伊的回答是足够的,直到我不得不处理另一个具有相同Div id的下拉列表。我尝试了alecxe的答案,它在两种情况下都有效。我从两个答案中学到了一些东西,所以谢谢你的帮助。嗨@alecxe!为了解决同样的问题,我使用了上面的代码,但它不起作用。这是我代码的链接。你能帮我吗?谢谢
from selenium.webdriver.support.select import Select

option_value = "Malicious E-mail"

select_element = browser.find_element_by_xpath("//select[option[@value = '%s']]" % option_value)
select = Select(select_element)
select.select_by_value(option_value)
select = Select(browser.find_element_by_css_selector(".col-lg-6 > select")) #finds the select tag
select.select_by_value("Malicious E-mail")
#or
select.select_by_visible_text("Malicious E-mail")