我正在使用 Python Selenium 在网页上冲浪。 在此下拉列表中,我必须选择选项“Appartment”,选项值=“2_4_18_31”
你知道该怎么做吗?我尝试使用“发送密钥”,但它不起作用:
我的代码:
APPARTEMENT = driver.find_element(By.NAME, "data[Search][idtype][]")
APPARTEMENT.click()
time.sleep(1)
APPARTEMENT.send_keys("Appartement")
time.sleep(1)
APPARTEMENT.send_keys(Keys.ENTER)
HTLML:
<select name="data[Search][idtype][]" id="inputTypeBien_transac" class="form-control selectpicker" multiple="" title="Type de bien" data-style="btn-selectpicker" style="display: none;">
<option value="void" disabled="">Type de bien</option>
<option value="1_25_22_32_7_26_11_38_39_27_41_34">Maison</option>
<option value="2_4_18_31" selected="selected">Appartement</option>
<option value="5">Terrain</option>
<option value="15_16">Parking/Garages</option>
<option value="pneuf">Programme Neuf</option>
<option value="prestige">Prestige</option>
<option value="21">Immeuble</option>
<option value="28_30_10_29_10_20_17_24">Autres</option>
<option value="44">Terrain agricole</option>
<option value="43">Terrain à batir</option>
<option value="45">Terrain de loisir</option>
</select>
您需要使用 Selenium 的 Select Class 来处理 selenium 中的下拉菜单。
参考以下代码:
time.sleep(5)
dropdown = Select(driver.find_element(By.ID, "inputTypeBien_transac"))
dropdown.select_by_visible_text("Appartement")
# or this
dropdown.select_by_value("2_4_18_31")
进口:
from selenium.webdriver.support.ui import Select
SeleniumBase 有一些快捷方式:
sb.select_option_by_text(dropdown_selector, option, dropdown_by="css selector")
sb.select_option_by_index(dropdown_selector, option, dropdown_by="css selector")
sb.select_option_by_value(dropdown_selector, option, dropdown_by="css selector")
就您而言,您可以使用:
sb.select_option_by_text("#inputTypeBien_transac", "Appartement")
完整示例:
from seleniumbase import SB
with SB(demo=True) as sb:
sb.open("https://seleniumbase.io/demo_page")
sb.select_option_by_text("#mySelect", "Set to 75%")
sb.sleep(1)