python - 无法使用 Python Selenium 选择下拉菜单
问题描述
我正在尝试抓取这个网站: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()
解决方案
请找到以下解决方案以从自定义下拉列表中进行选择
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()
推荐阅读
- javascript - 如何检查我是否在 Jasmine 上返回了正确的错误
- python - 在 jupyter notebook 中可视化两个 html 文件
- javascript - Nivo Stacked Line:无法逐年绘制
- flutter - Flutter SingleChildScrollView 的列已作为子项展开
- unity3d - 将角色从搅拌机导出到 Unity 后裁剪的对象
- javascript - 达到价值表达会话,但散列没有给出正确的价值
- html - 为什么我的粘性位置属性不起作用
- javascript - ReactJS - 如何从请求中排除禁用的表单项?
- python - AttributeError:模块'pages'没有属性'home_page'
- metal - 旧设备上的 Metal 2 API 功能