从下拉框中选择而不使用Select或Option标记:selenium python

时间:2018-05-15 15:36:23

标签: python html selenium selenium-webdriver drop-down-menu

我正在尝试从网络上的下拉列表中选择一个值,但HTML没有任何Select或Option标记。列表的值位于表中,未嵌入代码中。我有能力在这个框中输入文字,所以我想一个简单的解决方案就是使用.sendkeys(如果输入的文本与下拉选项匹配,则在网页上),但我猜Python不会让你这样做那个组合框因为我只是得到一个元素是不可见的错误。我找到了以下链接,其中详细介绍了如何与下拉列表进行交互,但“无选择选项”部分仅提供了Java和Ruby的示例。

下面是下拉框的检查代码。

我有什么选择?

https://sqa.stackexchange.com/questions/12029/how-do-i-work-with-dropdowns-in-selenium-webdriver?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

<span class="custom-combobox">
    <input title="" class="custom-combobox-input ui-widget ui-widget-content ui-corner-left ui-autocomplete-input" autocomplete="off">
<a tabindex="-1" class="ui-button ui-widget ui-button-icon-only custom-anchor custom-combobox-toggle ui-corner-right" role="button">
<span class="ui-button-icon ui-icon ui-icon-triangle-1-s">
    </span><span class="ui-button-icon-space"> </span></a></span>
    <span class="ui-button-icon-space"> </span>

1 个答案:

答案 0 :(得分:1)

刚刚找到了一个非常简单的解决方案来解决这个烦人的问题, 只是为了解决问题而四处寻找,选择不带Select类的下拉列表

    
    # Find your dropdown element by the following, finds the element in the dropdown named BRA
    Dropdown_Element = driver.find_element(By.XPATH, "//*[text()='BRA']").click()
    
    # Store the ActionChains class inside the actions variable
    actions = ActionChains(driver)
    
    # Click on the element using the click(on_element=)
    actions.click(on_element=Dropdown_Element)
    time.sleep(2)
    actions.perform()