【问题标题】:Selenium Python Drop Down Not ControllableSelenium Python Drop Down 不可控
【发布时间】:2023-03-17 13:50:01
【问题描述】:

我正在尝试使用名为 radius 的 Selenium 来选择和控制 www.ziprecruiter.com 网站上的下拉菜单。由于我是初学者,我似乎无法弄清楚为什么我无法控制这个下拉半径菜单。我尝试使用按 ID、名称、Xpath 和选择查找,但似乎没有任何效果。我想在半径下拉菜单中选择“25 英里”选项,有什么想法吗?

<label class="filter_headline" for="search_filters_radius">Distance</label>
<menu id="select-menu-search_filters_radius" class="select-menu-menu" tabindex="-1">
<button class="select-menu-header">Anywhere</button>
<div class="select-menu-submenu-wrapper">
<div class="select-menu-submenu-inner" style="left: 63.0667px; top: 145px;">
<menu class="select-menu-submenu">
<button class="select-menu-item select-menu-selected">Anywhere</button>
<button class="select-menu-item">Within 100 miles</button>
<button class="select-menu-item">Within 50 miles</button>
<button class="select-menu-item">Within 25 miles</button>**
<button class="select-menu-item">Within 10 miles</button>
<button class="select-menu-item">Within 5 miles</button>
</menu>

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    有时下拉菜单是使用SELECT 标签创建的,但这种情况越来越少,因为网站希望下拉菜单的样式与典型的SELECT 所提供的样式不同。您在此页面上拥有的是不是SELECT 标记的下拉列表实例。如果它是一个 Select 标记,您将能够利用内置方法 select_by_*()

    由于这不是 SELECT 标记,您需要做的是单击顶级元素以显示选项,然后单击所需选项,在您的情况下为“25 英里内”。

    searchText = "Within 25 miles"
    // clicks the "Anywhere" dropdown
    driver.find_element_by_id("select-menu-search_filters_radius")).click();
    // selects the desired option by text
    driver.find_element_by_id("//menu[@id='select-menu-search_filters_radius']//button[text()='" + searchText + "']")).click();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-02
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    相关资源
    最近更新 更多