Python Selenium JS

Рейтинг: 0Ответов: 1Опубликовано: 03.06.2023

Возвращаясь в предыдущему вопросу про Selenium и Python. Вопрос решился скролингом страницы

for p in range(0, 1080, 50):
    driver.execute_script(f"window.scrollTo(0, window.scrollY + {p})")
    time.sleep(random.choice([1, 2]))

Однако, там выплывает окно, которое надо закрыть, закрываешь, скролишь - данные скачиваются, нет - нет ( PS. про API понял, тут вопрос про возможности Selenium. PPS. сильно не ругайтесь, я новенький.

Всплывающее окно

Ответы

▲ 1

Можно использовать такой трюк, он удаляет ненужный элемент со страницы. document.(тут class, id, name, text) для поиска элемента на странице по указанному идентификатору. Затем мы проверяем, найден ли элемент, и если да, то удаляем его с помощью метода remove(). В конце мы возвращаем True, чтобы указать успешное выполнение операции удаления элемента.

def element_remove_for_js_class(self, element):
    self.driver.execute_script(f"var elements = document.getElementsByClassName('{element}');
                                while (elements.length > 0) elements[0].remove();")
    return True

def element_remove_for_js_class(self, element):
    self.driver.execute_script(f"var element = document.getElementById('{element}');
                                if (element) element.remove();")
    return True