python - 如何使用 selenium 从 notam 中提取数据
问题描述
from selenium import webdriver
chrome_path=r"C:\Users\Admin\Desktop\New folder\chromedriver.exe"
driver=webdriver.Chrome(chrome_path)
driver.get("https://www.notams.faa.gov/dinsQueryWeb/")
driver.find_element_by_xpath("""/html/body/div[3]/div[3]/button""").click()
search=driver.find_element_by_name("retrieveLocId")
#search=driver.find_element_by_xpath("""//*[@id="searchCriteria"]/div/input""")
ICAO=input("ENTER 4 DIGIT ICAO CODE")
search.send_keys(ICAO)
driver.find_element_by_xpath("""/html/body/table[3]/tbody/tr/td[1]/table/tbody/tr[1]/td/form/table/tbody/tr/td[2]/table/tbody/tr[5]/td/input[1]""").click()
table=len(driver.find_elements_by_xpath("""//*[@id="form1"]/div/table/tbody/tr[1]/td/table[3]/tbody/tr"""))
解决方案
基本上没有,当你点击时 View NOTAMs
,它会打开一个新标签,所以你需要切换到新标签:
driver.find_element_by_xpath("/html/body/table[3]/tbody/tr/td[1]/table/tbody/tr[1]/td/form/table/tbody/tr/td[2]/table/tbody/tr[5]/td/input[1]").click()
all_handles = driver.window_handles
driver.switch_to.window(all_handles[1])
table = len(driver.find_elements_by_xpath("//*[@id='form1']/div/table/tbody/tr[1]/td/table[3]/tbody/tr"))
应该打印 1。
推荐阅读
- json - 如何创建 JSON 文件结构,然后使用 bash 输出通过 jq 填充
- reactjs - 试图改变这个的背景颜色
datepicker material-UI 组件(提供 CodeSandbox) - docker - 如何在 Windows 10 中使用 Docker 中的 thenets/parsoid 将本地文本文件转换为 html?
- javascript - 验证+提交后反应输入值从定义变为未定义
- java - 更改代理和脚本库的默认 Java 版本
- c - 释放单链表的内存时出现无效的 free() 错误
- vim - Vim,映射非标准键(前进/后退/放大/缩小/收藏夹)
- windows - 用于从子文件夹和子文件夹中的文件中删除破折号的 Windows 批处理脚本
- regex - Fluent-Bit 是如何提取日志时间的,并且仍然保留原始日志时间的输出?
- python - 在 Tk.Canvas 中制作新的 Pillow 图像时,为什么数组有效但变量无效?