如何解决Selenium无法通过xpath或ID显式等待找到元素超时异常
我正尝试使用以下代码,使用硒从Python单击“下载数据”按钮,从this网站下载csv:
driver = webdriver.Chrome(executable_path=r'/usr/local/bin/chromedriver')
URL = 'https://www.stats.govt.nz/experimental/covid-19-data-portal'
driver.get(URL)
element = WebDriverWait(driver,15).until(
EC.presence_of_element_located((By.ID,"download_data-show"))
)
# Or this:
# element = WebDriverWait(driver,15).until(
# EC.presence_of_element_located((By.XPATH,'//*[@id="download_data-show"]'))
# )
element.click()
这是我检查按钮时得到的html代码:
<button id="download_data-show" class="btn btn-modal action-button shiny-bound-input" type="button"> Download data </button>
当我运行python代码时,我得到一个TimeoutException,当我尝试隐式等待30秒时,出现以下错误:
NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":"Download data"}
(Session info: chrome=84.0.4147.135)
关于为什么找不到该元素的任何想法?
解决方法
您应该从此URL(即iframe)下载它https://statisticsnz.shinyapps.io/covid_19_dashboard/ 我用您的代码对其进行了测试,并找到了选择器。
如果无论如何您都想使用原始链接,也许这将对您有所帮助: Can't select an Iframe in selenium webdriver
,以下是如何进入iframe的答案: Select iframe using Python + Selenium
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。