Я пытаюсь прочитать данные с веб-сайта, который содержит несколько раскрывающихся меню и таблиц с использованием Selenium.
Вот ссылка: "https://markets.ft.com/data/funds/tearsheet/historical?s=NL0006294175:EUR".
Мне нужно изменить диапазон дат, предположим, что я хочу увидеть цены на эту акцию с 1 января по 5 января, поэтому я нажимаю на 2 маленьких календаря. Выбор и нажатие на определенную дату из таблицы слева - это нормально, мне удается без проблем использовать селекторы xpaths и css.
Однако щелкнуть дату в таблице справа очень сложно, и я не понимаю, почему.
Python всегда отображает ошибки, такие как:
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
Вот мой код:
driver.get(r'https://markets.ft.com/data/etfs/tearsheet/historical?s=O9P:SES:USD')
driver.find_element_by_css_selector("body > div.o-grid-container.mod-container > div:nth-child(2) > section.mod-main-content > div:nth-child(1) > div > h2 > span").click()
driver.find_element_by_css_selector("body > div.o-grid-container.mod-container > div:nth-child(2) > section.mod-main-content > div:nth-child(1) > div > div > div.mod-ui-filter-overlay.clearfix.mod-filter-ui-historical-prices-overlay > div.mod-ui-overlay.mod-ui-filter-overlay__form > div > form > fieldset > span > div.mod-ui-date-picker.mod-filter-ui-historical-prices-overlay__date--from > div.mod-ui-date-picker__input-container > i").click()
driver.find_element_by_xpath('//*[@title="Next month"]').click()
driver.find_element_by_xpath("//*[@aria-label='1 Jan, %d']" %(y)).click() #The click on the table on the left works
driver.find_element_by_css_selector("body > div.o-grid-container.mod-container > div:nth-child(2) > section.mod-main-content > div:nth-child(1) > div > div > div.mod-ui-filter-overlay.clearfix.mod-filter-ui-historical-prices-overlay > div.mod-ui-overlay.mod-ui-filter-overlay__form > div > form > fieldset > span > div.mod-ui-date-picker.mod-filter-ui-historical-prices-overlay__date--to > div.mod-ui-date-picker__input-container > i").click()
time.sleep(2)
driver.find_element_by_xpath("//*[@aria-label='5 Jan, %d']" %(y)).click() #this does not work, the element is not interactable
Я также пытался использовать ActionChains и WebDriverWait, но ничего не работает.
Я подозреваю, что проблема в том, что две таблицы действительно похожи, и селен пытается получить доступ к первой таблице, даже после того, как она больше не видна, но я действительно не знаю, как это исправить.
Знаете ли вы, есть ли способ нажать на дату во второй таблице?
Заранее спасибо.