Selenium-Python-选择下拉菜单meun选项-无ID或名称
我试图在下拉菜单中选择和元素: HTML是: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
<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")