当期权值不断变化时,如何使用硒通过下拉列表进行封闭式?

How to use selenium for webscraping through a dropdown when the option value is constantly changing?

我有一个下拉菜单,假设下拉菜单的代码如下所示:

select name="Rv$ct104$ct1111Value" onchange="javascript:setTimeout('___do PostBack(\'Rv$ct104$ct1111Value')',0)" id="RV_ct104_ct111_ddValue" class="aspNetDisabled" style="font-family": Verdana; font-size:8pt; width:281px;"
<option selected="selected" value="1">(ALL)</option>
<option value="2"Bob&nbsp;LastName1</option>
<option value="3"George&nbsp;LastName2</option>
<option value="4"Alice&nbsp;LastName3</option>
<option value="5"Michael&nbsp;LastName4</option>
<option value="6"Mary&nbsp;LastName5</option>

如果 Alice 的期权价值不断变化,我将如何 select 'Alice' 使用 selenium 和 python 我的网络抓取工具?新名称不断添加到下拉列表中,因此选项值不断变化,但我需要我的网络抓取工具始终 select 相同的名称。

select_by_visible_text 可能就是您所需要的。 还添加等待下拉菜单在打开时加载

from selenium.webdriver.support.select import Select
text_dropdown = "Alice"

dropdown_locator = driver.find_element_by_id(element)
dropdown_locator.click()
select = Select("dropdown_locator")
if locator is not None:
    for option in select.options:
        select.select_by_visible_text(text_dropdown)

此问题的答案包含更多选项:

How to select a drop-down menu value with Selenium using Python?