【发布时间】:2022-01-24 20:44:30
【问题描述】:
当在以下网站上的搜索失败时,会为错误打开一个小的模式对话框,但我的代码找不到我在源代码中看到的“id=noresultsfound”HTML:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(
"/Users/bob/Documents/work/AIFA/scraper/scrape_gu/chromedriver"
)
# navigate through the initial agreement screens
driver.get("https://farmaci.agenziafarmaco.gov.it/bancadatifarmaci/cerca-farmaco")
readunderstood = driver.find_element_by_id("conf")
readunderstood.click()
accept = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "/html/body/div[5]/div[3]/div/button"))
)
accept.click()
# end of the initial agreement screens
# now input search string
find_textbox = driver.find_element_by_id("search")
find_textbox.send_keys("ZQ")
find_textbox.send_keys(Keys.ENTER)
# check if any results found
# if not we have //*[@id="noresultsfound"]
try:
element = WebDriverWait(driver, 5).until(
EC.presence_of_element_located((By.ID, "noresultsfound"))
)
finally:
driver.quit()
当然,感兴趣的代码是在#check if any results found 注释之后的代码。
当然,我还需要单击“确定”按钮将其关闭,但是当我能够找到模态窗口时,我想这也是可行的。
代码可以按原样运行。
【问题讨论】:
标签: python selenium xpath css-selectors webdriverwait