Как нажать на кнопку на сайте в selenium
Здравствуйте. В вк на сайте при регистрации, нужно указать пол.(всё равно какой) Но не получается указать селениуму где кнопка.
Вот часть HTML кода, где находятся кнопки.
1 2 3 4 5 6 7 8 9
div class="JoinForm__sex JoinForm__sex--hidden" style="display: block;"> div class="JoinForm__sex JoinForm__sex--hidden" style="display: block;"> div class="JoinForm__label">Ваш пол/div> div class="JoinForm__sexIn"> div class="JoinForm__sexRadio radiobtn" data-sex="1" role="radio" aria-checked="false" tabindex="0">Женский/div> div class="JoinForm__sexRadio radiobtn" data-sex="2" role="radio" aria-checked="false" tabindex="-1">Мужской/div> /div> /div>
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Нажать кнопку на сайте не используя Selenium
Пытаюсь из вк спарсить документ .docx получаю ссылку на него, перехожу, но вместо скачивания.
Как не через selenium нажать кнопку на сайте
Всем доброго дня P.s. в вебе я чайник, в скором времени хотел всё это дело начать учить, но.
Как нажать на скрытую кнопку в selenium webdriver
Добрый день! Такая проблема. Не могу нажать на вроде бы скрытый элемент. Локатор к кнопке.
Как нажать кнопку на сайте
Вот кусок кода от кнопки: <div market_listing_action_buttons">.
138 / 103 / 35
Регистрация: 28.11.2013
Сообщений: 346

Сообщение было отмечено VladXP3022 как решение
Решение
Выбирает «Мужской», чтобы изменить на «женский» надо установить data-sex=»1″:
Male = driver.find_element_by_xpath('//div[@data-sex="2"]').click()
Регистрация: 14.01.2022
Сообщений: 4
Кликните здесь для просмотра всего текста
Traceback (most recent call last): File "C:\Users\admin\Desktop\OSINT проект\VK_Nomer\VK_Nomer.py", line 23, in heckbox_8 = driver.find_element_by_xpath('//div[@data-sex="2"]').click() File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webelement.py", line 81, in click self._execute(Command.CLICK_ELEMENT) File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webelement.py", line 710, in _execute return self._parent.execute(command, params) File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute self.error_handler.check_response(response) File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable (Session info: chrome=97.0.4692.71) Stacktrace: Backtrace: Ordinal0 [0x0065FDC3+2555331] Ordinal0 [0x005F77F1+2127857] Ordinal0 [0x004F2CD0+1060048] Ordinal0 [0x0051F3AE+1242030] Ordinal0 [0x00514FB3+1200051] Ordinal0 [0x00537B0C+1342220] Ordinal0 [0x00514984+1198468] Ordinal0 [0x00537C14+1342484] Ordinal0 [0x005475FA+1406458] Ordinal0 [0x00537976+1341814] Ordinal0 [0x005136B6+1193654] Ordinal0 [0x00514546+1197382] GetHandleVerifier [0x007F9622+1619522] GetHandleVerifier [0x008A882C+2336844] GetHandleVerifier [0x006F23E1+541697] GetHandleVerifier [0x006F1443+537699] Ordinal0 [0x005FD18E+2150798] Ordinal0 [0x00601518+2168088] Ordinal0 [0x00601660+2168416] Ordinal0 [0x0060B330+2208560] BaseThreadInitThunk [0x75E6FA29+25] RtlGetAppContainerNamedObjectPath [0x77D27A9E+286] RtlGetAppContainerNamedObjectPath [0x77D27A6E+238]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import time from selenium import webdriver nomer = input('NOMER') driver = webdriver.Chrome() driver.get('https://vk.com') element = driver.find_element_by_name("first_name").send_keys('anonim') element_2 = driver.find_element_by_name("last_name").send_keys('anonimus') checkbox = driver.find_element_by_id('dropdown1').click() checkbox_2 = driver.find_element_by_id('option_list_options_container_1_2').click() checkbox_3 = driver.find_element_by_id('dropdown2').click() checkbox_5 = driver.find_element_by_id('option_list_options_container_2_3').click() checkbox_4 = driver.find_element_by_id('dropdown3').click() checkbox_5 = driver.find_element_by_id('option_list_options_container_3_8').click() checkbox_6 = driver.find_element_by_class_name('FlatButton__content').click() #heckbox_7 = driver.find_element_by_class_name("__sentry_instrumentation_handlers__").click() heckbox_8 = driver.find_element_by_xpath('//div[@data-sex="2"]').click()
Python Selenium Иммитировать нажатие на кнопку «я не робот» recaptcha v2
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.
themixa
Новичок
Пользователь
Май 13, 2020 14 0 1
Windows 10 , Python 3.9.5 , Хочу иммитировать нажатие на копку «я не робот» recaptcha v2. Но выдает ошибку : selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified ; «объект не допустим или закрыт» подскажите как обойти recaptcha v2 и нажать «я не робот» . Спасибо
import webbrowser,time,os,pyautogui
import selenium.common.exceptions
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import random
import os
from selenium.webdriver.chrome.options import Options
Как нажать на скрытую кнопку в selenium webdriver
Добрый день!
Такая проблема. Не могу нажать на вроде бы скрытый элемент. Локатор к кнопке работает в DevTools, а через Selenium не найден. Посмотрел варианты, как через JS сделать элемент видимым, но что-то не работает.
Можете подсказать, можно ли сделать кнопку видимой и нажать на неё посредством Selenium?
P.S. помимо использования JS для нажатия, типо этого:
button = driver.find_element(By.XPATH, '//div[@class="product-page__order"]//span[contains(text(), "Добавить в корзину")]') driver.execute_script("arguments[0].click();", button)
Моё решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains def test_click_element(): with webdriver.Chrome() as driver: driver.get('https://www.wildberries.ru/catalog/117232735/detail.aspx?targetUrl=GP') driver.maximize_window() time.sleep(2) # Активируем ожидание пока не загрузится страница: WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, '//img[@alt="Wildberries"]'))) # локатор на кнопку Добавить в корзину: button = driver.find_element(By.XPATH, '//div[@class="product-page__order"]//span[contains(text(), "Добавить в корзину")]') # делаем элемент видимым driver.execute_script("arguments[0].style.display = 'block';", button) time.sleep(2) # перемещаем указатель мыши на элемент: ActionChains(driver).move_to_element(button).perform() # не находит / вылезает ошибка # нажимаем на кнопку.. button.click() time.sleep(2) driver.quit()
Python-сообщество
![]()
- Начало
- » Python для новичков
- » Как «нажать кнопку»?
#1 Ноя. 19, 2017 14:58:57
DenAon От: Ярославль Зарегистрирован: 2017-11-17 Сообщения: 5 Репутация: 0 Профиль Отправить e-mail
Как «нажать кнопку»?
Изучаю 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. здесь срабатывает не нарисованная кнопка, а другой элемент, которому и надо передавать событие нажатия.
Прошу задать ускорение в нужную сторону.
Многознание уму не научает.
#2 Ноя. 20, 2017 19:38:19
hvppydvddy Зарегистрирован: 2015-05-26 Сообщения: 36 Репутация: 0 Профиль Отправить e-mail
Как «нажать кнопку»?
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("Переход по кнопке Назад")

Отредактировано hvppydvddy (Ноя. 20, 2017 19:46:30)
#3 Ноя. 20, 2017 19:57:42
DenAon От: Ярославль Зарегистрирован: 2017-11-17 Сообщения: 5 Репутация: 0 Профиль Отправить e-mail
Как «нажать кнопку»?
hvppydvddy
DenAon
Благодарю за ответ. Я уже успел кой чего приколхозить, основная проблема была в том что я смотрел функцию хрома “посмотреть код”. Он показывал вот такой код
Но когда подсвечивается элемент при выделении кода, на экране он уже обозван как
div.b-501px-slider__arrow.b-501px-slider__arrow_dir_prev
Вместо пробела точка.
второй прикл, что эта кнопка при первой загрузке подсвечена и имеет вот такой код
Он отличается от того что я искал и нажимал.
В итоге пришлось сделать задержку и после нее искать элемент и нажимать.
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 для элемента. А то из просмотра кода что то он совсем не видится. Или я не там смотрю.
Многознание уму не научает.
#4 Ноя. 20, 2017 20:02:58
hvppydvddy Зарегистрирован: 2015-05-26 Сообщения: 36 Репутация: 0 Профиль Отправить e-mail
Как «нажать кнопку»?
DenAon
ще подскажите каким инструментом можно найти правильный XPATH для элемента
Фаерфокс с этим справляется на ура) в старых версиях (если не ошибаюсь ниже 50) это аддон Fire Bug + FirePath. А на последней версии вообще сказка без всяких аддонов, ПКМ по элементу -> Исследовать элемент, снизу на выделенной строчке жмем ПКМ -> копировать -> Xpath
Отредактировано hvppydvddy (Ноя. 20, 2017 20:03:37)
#5 Ноя. 20, 2017 20:14:09
DenAon От: Ярославль Зарегистрирован: 2017-11-17 Сообщения: 5 Репутация: 0 Профиль Отправить e-mail
Как «нажать кнопку»?
hvppydvddy
Круто, буду знать! Полезный совет.
Многознание уму не научает.
![]()
- Начало
- » Python для новичков
- » Как «нажать кнопку»?
