Python Selenium 下拉列表
我正在用Python的Selenium库在网页上浏览。在这个下拉列表中,我必须选择选项“公寓”,这个选项的值是“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)
这是网页的HTML代码:
<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>
2 个回答
0
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)
0
你需要使用 Selenium的Select类 来处理下拉菜单。
请参考下面的代码:
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