python - Python + Selenium 点击回发链接
问题描述
我正在尝试抓取显示案例列表的页面,每个案例都是提交表单的回发链接,响应是带有详细信息的 JavaScript 弹出窗口的同一页面。我可以要求任何人,但我无法让 switch_to.window 或 switch_to.frame 工作。这种类型的链接有什么技巧吗?
可运行的代码片段
import undetected_chromedriver.v2 as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import sys
'''
Requires chrome
pip install selenium
pip install undetected_chromedriver
'''
driver = uc.Chrome()
txtUsingTestDates = 'Using test dates'
print(txtUsingTestDates.center(20, "="))
dateStart = "08/02/2021"
dateEnd = "08/02/2021"
with driver:
driver.get('https://publicindex.sccourts.org/abbeville/publicindex/')
try:
formAcceptTerms = driver.find_element(By.XPATH, "//*[@id='form1']")
except:
print("Didn't find form")
try:
driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_ButtonAccept']").click()
print(">>>Accepting terms")
except:
print("Didn't find button")
### Search form
#Select court
selectorCourts = Select(driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_DropDownListCourtType']"))
selectorCourts.select_by_visible_text('Circuit Court')
#Select case type
selectorCaseType = Select(driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_DropDownListCaseTypes']"))
selectorCaseType.select_by_visible_text('Criminal-Clerk')
#Select date search for filing date
selectorDateSearchType = Select(driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_DropDownListDateFilter']"))
selectorDateSearchType.select_by_visible_text('Case Filed')
#Fill from and to date
textBoxDateFrom = driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_TextBoxDateFrom']")
textBoxDateFrom.send_keys(dateStart)
textBoxDateTo = driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_TextBoxDateTo']")
textBoxDateTo.send_keys(dateEnd)
get_cookies = driver.get_cookies()
print(get_cookies)
#Submit search
driver.find_element(By.XPATH, "//*[@id='ContentPlaceHolder1_ButtonSearch']").click()
#Click each case number
driver.close()
解决方案
推荐阅读
- sql - 使用 SQL Server 在给定期间搜索算法中查找项目是否可用于预订
- eclipse - Scala - 在多个字段上使用 DF 过滤器
- javascript - 在反应应用程序中的页面加载期间加载配置数据
- jquery - 为什么一旦有赢或输,“要猜的数字”不重置?本质上,我的“函数重置()”不起作用?
- typescript - TypeScript 类装饰器获取类名
- python - 如何在 python 日志记录函数中替换行号
- python - 使用 tweepy 随机抽样推文
- bash - 无法将参数传递给脚本脚本
- python - 如何在张量流中“重置”随机序列
- c# - 比较数据网格视图的两行单元格,突出显示不匹配的单元格