Невозможно выбрать выпадающее меню, используя Python Selenium - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь почистить этот веб-сайт: http://sekolah.data.kemdikbud.go.id/ Я хочу выбрать поле "Jenjang", значение "SMA". После этого нужно нажать кнопку «Cari Sekolah» enter image description here

К сожалению, мой код не работает. Мне удается выбрать 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()

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Ниже вы найдете решение для выбора из выпадающего списка

 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()

enter image description here

0 голосов
/ 02 апреля 2020

Вы можете использовать селектор form button[type=submit] css, чтобы щелкнуть.

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"form button[type=submit]"))).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...