首页 > 解决方案 > 如何使用 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"""))

标签: pythonselenium

解决方案


基本上没有,当你点击时 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。


推荐阅读