Как нажать на кнопку на сайте через Python?
Есть сайт, на котором некоторые элементы страницы недоступны до нажатия на кнопку. Адрес при нажатии при этом не меняется, поэтому нельзя просто перейти на другую страницу. Как это сделать? Какие библиотеки нужны?
Отслеживать
задан 21 дек 2019 в 19:05
IceCube092 IceCube092
43 1 1 серебряный знак 8 8 бронзовых знаков
Нет баллов на коммент, поэтому так. Это должно помочь: stackoverflow.com/questions/27869225/…
21 дек 2019 в 19:13
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для подобных целей есть selenium.
Вот небольшой пример авторизации в вк.
from time import sleep from selenium import webdriver VK_ROOT_URL = "https://vk.com/" class TestFunc(object): def __init__(self): self.driver = webdriver.Firefox() self.driver.get(VK_ROOT_URL) def login(self, username, password): email_field = self.driver.find_element_by_id("index_email") email_field.send_keys(username) sleep(5) password_field = self.driver.find_element_by_id("index_pass") password_field.send_keys(password) sleep(5) login_button = self.driver.find_element_by_id("index_login_button") login_button.click() if __name__ == __main__: username = 'username' password = 'password' TestFunc().login(username, password)
Для марса у селенитам есть такая функция как get_attribute(«outerHTML»), которая возвращает HTML. В вашем распоряжении есть большая документация.
Как с помощью питона нажать на кнопку на сайте?
Нужно нажать на кнопку «Прозвонить » на сайте «Удаленное управление Android». Помогите мне это реализовать. Какие библиотеки и методы нужно для этого использовать для этого?
- Вопрос задан более трёх лет назад
- 27769 просмотров
Комментировать
Решения вопроса 2
from selenium import webdriver driver = webdriver.Firefox() driver.get('http://yo.ur/pretty-and-cool/url') element = driver.find_element_by_css_selector('button.with-class#or-id') element.click()
Ответ написан более трёх лет назад
Нравится 7 4 комментария
VADIMPYthon @VADIMPYthon
Верно я понимаю?
Я могу выбрать либо id кнопки или class кнопки. Или я должен и id и class написать?
Также у меня вопрос я должен верхнюю запятую оставлять или нет?
VADIMPYthon, либо id, либо класс, либо тэг, либо любые их комбинации. Погугли CSS селекторы. А лучше пользоваться xpath.
Нажатие кнопок на сайте без selenium
Здравствуйте, у меня такая проблема, хочу написать приложение которое будет нажимать кнопки на сайте и получать с сайта инфу.
https://m.p.finance/ru/cabinet. -high-low/ вот собственно ссылка с коей нужно работать, помогите пожалуйста грамотно написать код, что бы нажимать кнопки «выше», «ниже», «сумма» и смотреть изменение баланса
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как в lazarus передать программе нажатие кнопок без использования WinAPI?
Нужно передать программе нажатие кнопок на клаве, например Alt+Ctrl+Home.
Программное нажатие кнопки на сайте(без ID и Name)!
Всем Доброго Времени Суток. Код для нажатия кнопки по её ID: String if(.
Программное нажатие на кнопку в игре не отрабатывает. Имитировать нажатие кнопок геймпада xbox 360
Добрый день! Хочу написать простенького бота, который бы помогал мне совершать некоторые.
Нажатие на кнопку Selenium
Добрый день. Пытаюсь нажать на кнопку с помощью уникального класса, но элемент "couldn’t be.
Нажатие кнопки в Selenium
Есть код на странице кнопок: <td colspan="5"> <a.
Автоматизируй это!
7060 / 4563 / 1210
Регистрация: 30.03.2015
Сообщений: 13,142
Записей в блоге: 29
Cuburskuu, помочь то есть написать за тебя, а ты скопируешь? если нет то где твой код и вопросы?
ты в курсе же да, что у нас нет доступа в этот кабинет и мы не видим никаких кнопок?
Регистрация: 26.02.2022
Сообщений: 3
За меня писать конечно не надо, мне ведь и самому интересно,
import requests
from bs4 import BeautifulSoup
url = ‘https://m.p.finance/ru/cabinet/demo-quick-high-low/’
r = requests.get(url)
soup = BeautifulSoup(r.text, ‘lxml’)
print(soup)
Вот код, пока просто распарсил страничку, это страница без каких либо авторизацией, там
любой пользователь может увидеть эти кнопки.
А моя проблема в том, что я пишу с андроида и не могу использовать Селениум, то бишь мне надо
вытащить эти кнопки со страницы и как то с ними научиться взаимодействовать..
Если можете подскажите, как мне использовать селениум с андроида, или подскажите другие пути
для программного взаимодействия с html документами
Добавлено через 2 минуты
Ещё он перенаправляет походу на страницу авторизации и оттуда ещё надо кликнуть две кнопки, что бы проехать дальше
Как нажать кнопку на сайте с помощью python
Одним из наиболее используемых компонентов в графических программах является кнопка. В tkinter кнопки представлены классом Button . Основные параметры виджета Button:
- command : функция, которая вызывается при нажатии на кнопку
- compund : устанавливает расположение картинки и текста относительно друг друга
- cursor : курсор указателя мыши при наведении на метку
- image : ссылка на изображение, которое отображается на метке
- pading : отступы от границ вилжета до его текста
- state : состояние кнопки
- text : устанавливает текст метки
- textvariable : устанавливает привязку к элементу StringVar
- underline : указывает на номер символа в тексте кнопки, который подчеркивается. По умолчанию значение -1, то есть никакой символ не подчеркивается
- width : ширина виджета
Добавим в окно обычную кнопку из пакета ttk:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") # стандартная кнопка btn = ttk.Button(text="Button") btn.pack() root.mainloop()
Для создания кнопки используется конструктор Button() . В этом конструкторе с помощью параметра text можно установить текст кнопки.
Чтобы разместить виджет в контейнере (главном окне), у него вызывается метод pack() . На ОС Windows мы получим следующую кнопку:

Конструктор Button определяет различные параметры, которые позволяют настроить поведение и внешний вид кнопки. Однако конкретный набор параметров зависит от того, используем ли мы кнопки из пакета tkinter или из пакета tkinter.ttk.
Обработка нажатия на кнопку
Для обработки нажатия на кнопку необходимо установить в конструкторе параметр command , присвоив ему ссылку на функцию, которая будет срабатывать при нажатии:
from tkinter import * from tkinter import ttk clicks = 0 def click_button(): global clicks clicks += 1 # изменяем текст на кнопке btn["text"] = f"Clicks " root = Tk() root.title("METANIT.COM") root.geometry("250x150") btn = ttk.Button(text="Click Me", command=click_button) btn.pack() root.mainloop()
Здесь в качестве обработчика нажатия устанавливается функция click_button. В этой функции изменяется глобальная переменная clicks, которая хранит число кликов. Кроме того, изменяем текст кнопки, чтобы визуально было видно сколько нажатий произведено. Таким образом, при каждом нажатии кнопки будет срабатывать функция click_button, и количество кликов будет увеличиваться:

Отключение кнопки
Для ttk-кнопки мы можем установить отключенное состояние с помощью метода state() , передав ему значение «disabled». С такой кнопкой пользователь не сможет взаимодействовать:
from tkinter import * from tkinter import ttk root = Tk() root.title("METANIT.COM") root.geometry("250x200") btn = ttk.Button(text="Click Me", state=["disabled"]) btn.pack() root.mainloop()
При этом в метод state мы можем передать набор состояний, поэтому значение «disabled» передается внутри списка.
