Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 22.01.2016
Сообщений: 29

Selenium найти локатор кнопки

23.08.2018, 17:37. Показов 4416. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По причине того, что не могу постоянно находиться дома, пишу себе бота для автоматической покупки товаров с аукциона по выгодной мне цене. Выбрал конечно же selenium (firefox) . Загвоздка возникла при выборе службы доставки. Имеется несколько
служб доставки при покупке товара, для каждой службы доставки имеется своя кнопка. Т.е выбираешь удобную для себя службу доставки нажав по кнопке. Напротив каждой кнопки написано название служб доставки. Мне необходимо чтобы программа выбирала постоянно нужную мне службу доставки поставив ползунок на нужную мне кнопку. Вот так выглядят кнопки

Код этих кнопок я представлю ниже, выяснил что цифры в id= каждый раз меняются даже у одной и той же службы доставки. По ним идентификацию нужной кнопки не проведешь. Мне необходимо найти кнопку с помощью driver_find_element_by. Зацепиться мне нужно именно за aria-label (код ниже) , т.к в нем присутствует название службы доставки. Остальное все динамическое. Схема в общем такая: Программа заходит на нужный товар --> Проверяет есть ли нужная мне служба доставки ---> Если есть, то выбирает нужную службу нажав по кнопке ---> покупает товар.

В общем кнопка есть, а найти её и нажать по ней не могу. Пробовал через xpatch делать поиск по слову, но безуспешно. Ниже я привел код двух кнопок, мне необходимо нажать по кнопке со службой доставки USPS Priority Mail , соответственно найти её надо именно по словам USPS Priority Mail которые имеются в aria-label. Как мне найти эту кнопку по словам? Прошу прощение за долгое описание, хотел обьяснить чтобы было детально понятно что я хочу.

<input aria-label="USPS Priority Mail" class="radio__control" id="radio-group-LOGISTIC_SERVICE_ITEM_382498908114-651249890008-NIL-420007" name="radio-group-LOGISTIC_SERVICE_ITEM_382498908114-651249890008-NIL" value="420007" type="radio">

<input aria-label="Economy Shipping" class="radio__control" id="radio-group-LOGISTIC_SERVICE_ITEM_382498908114-651249890008-NIL-420005" name="radio-group-LOGISTIC_SERVICE_ITEM_382498908114-651249890008-NIL" value="420005" type="radio">
Добавлено через 19 минут
вот как пытался сделать я : driver.find_element_by_xpath("//*[@aria-label='USPS Priority Mail']").click()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2018, 17:37
Ответы с готовыми решениями:

Selenium | Не нажимаются кнопки в режиме headless
Всем привет Пишу бота для Spotify. Может кто-нибудь сталкивался с проблемой, когда в обычном режиме Selenium нажимает на все...

Не передать текст с кавычками в xpath локатор selenium
Есть текст. var1 = 'ТСЖ &quot;ВОЛГОГРАДСКИЙ ПР-Т 50-1, 52-1, 52-2, 56-1, 56-2, 58-1, 58-3, 60-2, 64-1, 64-2, 66-2, ВОЛЖСКИЙ 21&quot;' ...

Найти локатор элемента в shadowroot
Здравствуйте! Столкнулся со следующей проблемой. Мне нужно найти локатор для элемента, который находится в shadow-зоне. Как это сделать -...

4
 Аватар для Freeden
107 / 104 / 34
Регистрация: 25.04.2012
Сообщений: 242
23.08.2018, 23:38
А если так;
Python
1
driver.find_element_by_xpath("//input[@aria-label='USPS Priority Mail']").click()
попробовать?
0
1 / 1 / 0
Регистрация: 22.01.2016
Сообщений: 29
24.08.2018, 14:19  [ТС]
К сожалению не сработало, вот сделал скрин и пометил на нем 2 блока от кнопок https://prnt.sc/kmdrzq

input id каждый раз разный даже от одной кнопки. Вот мне нужно как то сделать поиск именно по части aria-label . И желательно поиск чтобы можно было сделать по одному слову, т.е не USPS Priority Mail , а просто USPS ввел и команда нашла эту кнопку и кликнула.
0
 Аватар для Freeden
107 / 104 / 34
Регистрация: 25.04.2012
Сообщений: 242
24.08.2018, 16:07
Лучший ответ Сообщение было отмечено malchik_And как решение

Решение

Цитата Сообщение от malchik_And Посмотреть сообщение
И желательно поиск чтобы можно было сделать по одному слову, т.е не USPS Priority Mail , а просто USPS ввел и команда нашла эту кнопку и кликнула.
по идее тогда должно быть так:
Python
1
2
r_button = driver.find_element_by_xpath("//input[contains(@aria-label,'USPS')]")
r_button.click()
1
1 / 1 / 0
Регистрация: 22.01.2016
Сообщений: 29
27.08.2018, 12:12  [ТС]
спасибо, все работает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.08.2018, 12:12
Помогаю со студенческими работами здесь

Поиск кнопки Selenium
Не могу найти кнопку на сайте через селениум код кнопки &lt;nf-button label=\&quot;Добавить\&quot; variant=\&quot;link\&quot;...

Нажатие кнопки в Selenium
Есть код на странице кнопок: &lt;td colspan=&quot;5&quot;&gt; &lt;a href=&quot;javascript:__doPostBack('ctl00$ContentPH$BrandsDG$ctl14$ctl00','')&quot;...

[Selenium] Поиск кнопки по классу class="_ah57t _84y62 _i46jh _rmr7s"
Доброе время суток! Делаю чекер для instagram. но для этого нужно авторизоваться, с помощью selenium делаю ввод логина и пароля, далее хочу...

Локатор
Добрый вечер. Я видела ответ на это задание,но препод сказал что то решение не подходит,поэтому мне дали часть блок схемы,нужно её...

Локатор
1) Локатор ориентирован на одну из сторон света (&quot;С&quot; — север, &quot;З&quot; — запад, &quot;Ю&quot; — юг, &quot;В&quot; — восток) и может принимать три цифровые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru