Python Selenium 下拉列表

问题描述 投票:0回答:2

我正在使用 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>
python selenium-webdriver drop-down-menu
2个回答
0
投票

您需要使用 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

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)
© www.soinside.com 2019 - 2024. All rights reserved.