【发布时间】:2021-03-18 15:57:57
【问题描述】:
这是我第一个使用 selenium 的抓取项目。我正在尝试使用 this website 下载保存在列表中的几个 reddit 视频。
如您所见,它显示了一个输入标签,我需要在其中输入视频或 gif 的 url,然后转到下载页面。该输入标签有一个类名form-control form-control-lg form-control-alternative。因此,当我尝试获取该元素以便使用 Python 列表中的链接填充它时,它会显示 selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: .form-control form-control-lg form-control-alternative 错误。
你可以使用开发者工具检查自己,你会看到输入标签有那个类。
这是我的代码:
for gif in gif_list:
driver.get('https://keepv.id/reddit-video-downloader')
input_tag = driver.find_element_by_class_name('form-control form-control-lg form-control-alternative')
input_tag.send_keys(gif)
go_button = driver.find_element_by_class_name('btn btn-danger')
go_button.click()
second_button = driver.find_element_by_class_name('btn btn-danger sheen waggle spin')
second_button.click()
WebDriverWait(driver, 5).until(expected_conditions.presence_of_element_located((By.CLASS_NAME, 'row')))
download_button = driver.find_element_by_class_name('btn btn-lg btn-danger mb-3 shadow vdlbtn')
download_button.click()
gif_url = driver.current_url()
download_gif(gif_url)
【问题讨论】:
-
如果类名中有空格,则不应按类名查找元素。也许尝试不同的选择器/方法
标签: python selenium web-scraping css-selectors webdriverwait