【问题标题】:Unable to select drop down using Python Selenium无法使用 Python Selenium 选择下拉菜单
【发布时间】:2020-04-02 14:42:42
【问题描述】:

我正在尝试抓取这个网站:http://sekolah.data.kemdikbud.go.id/ 我想选择“Jenjang”字段,“SMA”值。之后,需要点击“Cari Sekolah”按钮

很遗憾,我的代码不起作用。我设法选择了 SMA,但无法单击“Cari Sekolah”开始查询。任何人都知道如何解决这个问题。 这是我的代码:

from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
import time
from selenium.webdriver.support.ui import Select

option = webdriver.ChromeOptions()
option.add_argument('--incognito')
webdriver = "/Users/rs26/Desktop/learnpython/web/chromedriver"
driver = Chrome(executable_path=webdriver, chrome_options=option)

url="http://sekolah.data.kemdikbud.go.id/"
driver.get(url)
wait = WebDriverWait(driver,15)
select_element = Select(driver.find_element_by_id("bentuk"))
select_element.select_by_value("SMA")
wait.until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Cari Sekolah']"))).click()

【问题讨论】:

    标签: python selenium dropdown


    【解决方案1】:

    请找到以下解决方案以从自定义下拉列表中进行选择

     from selenium import webdriver
        from selenium.webdriver.support.ui import Select
        from selenium.webdriver.support import expected_conditions as EC
        from selenium.webdriver.common.by import By
        from selenium.webdriver.support.ui import WebDriverWait
    
        # # Solution 1:
        driver = webdriver.Chrome(executable_path=r"C:\New folder\chromedriver.exe")
        driver.get('http://sekolah.data.kemdikbud.go.id/')
        driver.maximize_window()
        element =  WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "select2-bentuk-container")))
        element.click()
        list=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='select2-search__field']")))
        list.send_keys("SMA")
        select=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "select2-results__option")))
        select.click()
    

    【讨论】:

    • 非常感谢,不幸的是,发送密钥不起作用。它设法单击下拉菜单,但无法选择 SMA。
    • @rs26:您面临什么问题,因为我已经验证了解决方案并且它对我来说工作正常
    • 谢谢迪帕克。您的代码允许我单击下拉列表,但随后它停在那里并且没有选择“SMA”。这是错误:WebDriverException:未知错误:调用函数结果缺少“值”
    • 请尝试复制整个解决方案,这是一个自定义下拉菜单,我们发送输入值 SMA,然后根据类名从列表中选择它
    • 和我的 chrome 有关系吗?问题是:WebDriverException:断开连接:无法连接到渲染器(会话信息:chrome=80.0.3987.162)(驱动程序信息:chromedriver=2.31.488774(7e15618d1bf16df8bf0ecf2914ed1964a387ba0b),平台=Mac OS X 10.12.6 x86_64)
    【解决方案2】:

    你可以使用form button[type=submit]css选择器来点击。

    wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"form button[type=submit]"))).click()
    

    【讨论】:

    • 谢谢Sers。问题在于下拉选择,因为程序停在那里。错误是:WebDriverException:未知错误:调用函数结果缺少“值”提交按钮本身可以正常工作。
    猜你喜欢
    • 2023-04-01
    • 2017-06-16
    • 1970-01-01
    • 2023-03-25
    • 2022-11-11
    • 2017-03-23
    • 2018-02-17
    • 2020-12-11
    • 2021-03-13
    相关资源
    最近更新 更多