Найти - Пользователи
Полная версия: Как "нажать кнопку"?
Начало » Python для новичков » Как "нажать кнопку"?
1
DenAon
Изучаю Python 3 и Selenium Webdriver.
Есть страница с Яндека, картинки https://yandex.ru/images/
Нужно нажать кнопку для перехода на картинку предыдущего дня
 try:
elem2 = driver.find_element_by_class_name("b-501px-slider__arrow b-501px-slider__arrow_dir_prev")
except NoSuchElementException:
qwe = input("Не нашлось кнопки Назад. Нажмите Enter для выхода")
else:
print("Переход по кнопке Назад")
Происходит исключение.
Как я понимаю проблемы могут быть следующие:
1. кнопка не видимая, нужно навести на нее мышку и нажать.
2. здесь срабатывает не нарисованная кнопка, а другой элемент, которому и надо передавать событие нажатия.

Прошу задать ускорение в нужную сторону.
hvppydvddy
DenAon
 elem2 = driver.find_element_by_xpath("/html/body/div[6]/div[1]/div/div[1]/div[3]/div[4]/div[1]/div")
driver.execute_script("$(arguments[0]).click();", elem2)
print("Переход по кнопке Назад")
DenAon
hvppydvddy
DenAon
Благодарю за ответ. Я уже успел кой чего приколхозить, основная проблема была в том что я смотрел функцию хрома “посмотреть код”. Он показывал вот такой код
<div class=“b-501px-slider__arrow b-501px-slider__arrow_dir_prev” tabindex=“0” aria-label=“Картинка предыдущего дня” style=“height: 302px; margin-top: -151px;”><div class=“b-501px-slider__arrow-icon”></div></div>
Но когда подсвечивается элемент при выделении кода, на экране он уже обозван как
div.b-501px-slider__arrow.b-501px-slider__arrow_dir_prev
Вместо пробела точка.
второй прикл, что эта кнопка при первой загрузке подсвечена и имеет вот такой код
<div class=“b-501px-slider__arrow b-501px-slider__arrow_dir_prev b-501px-slider__arrow_blinking_yes” tabindex=“0” aria-label=“Картинка предыдущего дня” style=“height: 302px; margin-top: -151px;”><div class=“b-501px-slider__arrow-icon”></div></div>
Он отличается от того что я искал и нажимал.
В итоге пришлось сделать задержку и после нее искать элемент и нажимать.
            time.sleep(1)
try:
elem2 = driver.find_element_by_class_name("b-501px-slider__arrow.b-501px-slider__arrow_dir_prev")
except NoSuchElementException:
qwe = input("Не нашлось кнопки Назад. Нажмите Enter для выхода")
else:
print("Переход по кнопке Назад")
Click = ActionChains(self.driver).click(elem2)
Click.perform()

Еще подскажите каким инструментом можно найти правильный XPATH для элемента. А то из просмотра кода что то он совсем не видится. Или я не там смотрю.
hvppydvddy
DenAon
ще подскажите каким инструментом можно найти правильный XPATH для элемента
Фаерфокс с этим справляется на ура) в старых версиях (если не ошибаюсь ниже 50) это аддон Fire Bug + FirePath. А на последней версии вообще сказка без всяких аддонов, ПКМ по элементу -> Исследовать элемент, снизу на выделенной строчке жмем ПКМ -> копировать -> Xpath
DenAon
hvppydvddy
Круто, буду знать! Полезный совет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB