Я использую селен для разработки скребка для массовой загрузки эпизодов подкастов из Spreaker.
# https://www.spreaker.com/show/alabamas-morning-news-with-jt
for i in range(3):
print("Click number: {}".format(str(i)))
see_more = browser.find_element_by_id("show episodes more")
see_more.click()
browserPage = bs4(browser.page_source, 'lxml')
allEps.append( allEpisodesOnPage(browserPage) )
Поскольку они не все на пронумерованных страницах (/ episodes / page1, / page2), я должен нажать кнопку, чтобы загрузить больше.
Но по какой-то причине мой Код не может найти кнопку:
Traceback (most recent call last):
File "KeepTalking__02.py", line 59, in <module>
see_more.click()
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <a id="show_episodes_more" class="btnn btnn_alternative btnn_small" href="#"> could not be scrolled into view
Теперь «невозможно просмотреть» - это стандартная ошибка в Selenium, и я был завален возможными решениями:
- Прокрутите элемент в поле зрения.
Подождите, пока элемент станет видимым:
element = WebDriverWait(browser, 10).until(
ex_co.presence_of_element_located((By.CSS_SELECTOR, "#show_episodes_more")))
Переключитесь на включенный фрейм.
Но по какой-то причине я все еще получаю точно такую же ошибку. Что может вызвать это? Я сделал скриншот, и кнопка была на странице, поэтому я не понимаю, откуда исходит ошибка.