硒找不到元素



我正在尝试检索我想点击的元素。以下是 Selenium in Python 网站的开篇:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--dns-prefetch-disable')
driver = webdriver.Chrome("./chromedriver", options=chrome_options)
website = "https://www.agronet.gov.co/estadistica/Paginas/home.aspx?cod=4"
driver.get(website)  # loads the page

然后,我寻找我感兴趣的元素:

driver.find_element_by_xpath('//*[@id="cmbDepartamentos"]')

这引发了NoSuchElementException错误。当查看html源代码(driver.page_source)时,确实"cmbDepartamentos"不存在!我试图找到的下拉菜单的文本是"Departamentos:"也不存在。我该如何处理?

这应该有效:

iframe=driver.find_element_by_xpath('//div[@class="iframe"]//iframe')
driver.switch_to.frame(iframe)
driver.find_element_by_xpath('//*[@id="cmbDepartamentos"]').click()

笔记:

  • NoSuchElementException错误的原因是该元素是 在iframe内.除非您将驱动程序切换到该iframe, 识别将不起作用。
  • 在"开发工具"面板中按 Ctrl + F,然后搜索xpath在脚本中定义始终是排除以下问题的好方法 您的xpath定义,作为NoSuchElementException错误的原因(在您的情况下,xpath是正确的)
  • 在尝试查找"Departamentos"字段之前,您可能需要考虑为搜索区域/iframe 的完整加载添加WebdriverWait

相关内容

  • 没有找到相关文章

最新更新