簡體   English   中英

Selenium Python 中的 Select 下拉菜單

[英]Select dropdown in Selenium Python

我不能 select 值在列表中。 我嘗試使用find_element_by_class_name()打開菜單,但是當我需要 select a <li>返回該元素沒有 function click()

這里的代碼:

click_menu = driver.find_element_by_class_name("periodSelector")
click_menu[1].click()

這是我要解析的 HTML:

<div data-period-selector="" data-period="periodFilter">
    <div class="periodSelectorContainer">
        <div class="btn-group periodSelector">
            <button class="flat-btn dropdown-toggle periodToggle ng-binding" data-toggle="dropdown"> 20/02/2021 - 22/03/2021 <span class="dropdown-arrow"></span> </button>
            <ul class="dropdown-menu">
                <li>
                    <a href="javascript:void(0);" class="new-financ" ng-click="selectToday()"><i></i>
                        <span class="pull-left">Hoje</span>
                        <span class="pull-right"></span>
                    </a>
                </li>
                <li>
                    <a href="javascript:void(0);" class="new-financ" ng-click="selectThisWeek()"><i>
                </li>

有多個 class 名稱,您必須使用 css 選擇器。

click_menu = driver.find_element_by_css_selector("button.flat-btn.dropdown-toggle.periodToggle.ng-binding")
click_menu.click()

點擊第一個 li 標簽。

driver.find_element_by_xpath("ul[@class='dropdown-menu']/li[1]").click()

periodSelector是 DIV 上的 class

<div class="btn-group periodSelector">

我假設您需要單擊 BUTTON

<button class="flat-btn dropdown-toggle periodToggle ng-binding" data-toggle="dropdown">

這些類中的大多數看起來都是通用的(可能不是唯一的),但我猜想periodToggle在給定日期范圍的情況下可能是唯一的。 嘗試

driver.find_element_by_css_selector("button.periodToggle").click()

注意:您的代碼中有錯誤。 您正在使用.find_element_by_class_name() (單數),但在下一行click_menu[1]上有數組表示法。 在這種情況下,您可以只使用click_menu.click() 如果您使用.find_elements_by_*() (注意復數,元素),則只需要數組表示法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM