Исключить однотипный элемент.

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
Пытаюсь написать бота , что заходит в лк. мегафона и выключает все услуги, кнопки однотипные, одна услуга не отрубается, наверно спецом сделали ,чтобы усложнить жизнь ботоводам. Кнопка имеет свои уникальные атрибуты, ее могу спарсить в переменную. А как исключить кнопку от клика?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
Вы эти кнопки в цикле что ли кликаете?
Перенести кубики в C#, там организовать всё тот же цикл, проверять на наличие уникального аттрибута, если он есть, то "continue";
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Вы эти кнопки в цикле что ли кликаете?
Перенести кубики в C#, там организовать всё тот же цикл, проверять на наличие уникального аттрибута, если он есть, то "continue";
да ну какой c# .... :bw: очень похоже что даже кубики еще не очень понятны.

и да, похоже что в цикле прокликивается. вопрос только в том по какому принципу идет поиск элементов и по какому критерию организован цикл.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
Если кубиками, тогда нужно в цикле просто перед кликом брать любой другой атрибут, найденного по уникальному атрибуту элемента, и проверять его значение. Например брать ширину и, если она больше нуля, то пропускаем итерацию. Также нужно предусмотреть выход по красной линии у этого кубика.
Надеюсь понятно объяснил)
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
Вы эти кнопки в цикле что ли кликаете?
Перенести кубики в C#, там организовать всё тот же цикл, проверять на наличие уникального аттрибута, если он есть, то "continue";
Да.
Например брать ширину и, если она больше нуля, то пропускаем итерацию.
Вот в этом и вопрос, как пропустить этот элемент, исключить?
мегаф2.pngмегаф.png
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
Выше вам написали:
Кубик получения innertext. По красной, если это не тот кубик.
Кубик условия - проверка, что innertext != "Отключить"
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
Выше вам написали:
Кубик получения innertext. По красной, если это не тот кубик.
Кубик условия - проверка, что innertext != "Отключить"
Не понял как это поможет, не нашел изящного способа пропуска проклятой кнопки. Придется всех их обрабатывать , а хотелось бы лишь одну исключить.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Не понял как это поможет, не нашел изящного способа пропуска проклятой кнопки. Придется всех их обрабатывать , а хотелось бы лишь одну исключить.
ну они же не однотипные. вон, описание же у них разные. у этой "запрет услуги мобильных платежей" у других другие топики.
конечно если делаешь поиск через конструктор , то это нереализуемо, а вот если будешь делать через xpath , то там есть где развернуться.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
  • Спасибо
Реакции: Mikhail B.

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
опять намеки на c# ? :ca:
на c# все что угодно можно реализовать. а вот в кубиках.... поди прояви смекалку. а если заюзать xpath то и на кубиках можно очень гибко находить элементы.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
опять намеки на c# ? :ca:
на c# все что угодно можно реализовать. а вот в кубиках.... поди прояви смекалку. а если заюзать xpath то и на кубиках можно очень гибко находить элементы.
На кубах все можно сделать.
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
опять намеки на c# ? :ca:
на c# все что угодно можно реализовать. а вот в кубиках.... поди прояви смекалку. а если заюзать xpath то и на кубиках можно очень гибко находить элементы.
В очередной раз говорю, что нет ничего невозможного для классического подхода из того что можно сделать через xPath.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
круто.
ну я то не использую классический поиск, от слова совсем. да и обычные кубы поиска элемента тоже, даже с xpath, так как где то месяц назад обнаружил, что кубик не находит элемент по xpath.
а в c# тот же xpath находится. Ну а так как нужна стабильность, то отказался от кубиков.
Ну новички пусть работают с кубами, конечно. им то еще до c# далеко. Ну опять же практику работы с базовым функционалом получат :ca:
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 054
Благодарностей
6 482
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
  • Спасибо
Реакции: backoff

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
random1(0-(11)) означает рандомный клик по всем элементам кроме 11-го? Можно ли номер совпадения загнать в переменную?
zpr1.png
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Можно ли номер совпадения загнать в переменную?
Можнг генерировать номер отдельно и назначать в переменную. Речь о том, что бы зафиксировать какой рандом выпал?
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Речь о том как исключить однотипный элемент.
Например если на странице 10 чекбоксов, то никак их не исключить. Потому что по замыслу они однотипны. Мало вводной инфы. Я обычно использую innertext если элемент вызывает сомнения в уникальности.
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
смотри, названия и кнопки это элементы. И они идут по порядку. По этому можно собрать названия и номера совпадений в список. И потом уже брать нужные и кликать.

Задача не простая, не для новичка. Но можешь попробовать)
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18
После авторизации на сайте мегафон поставь эти экшены, но тут не все экшены дописаны (остались простые, думаю сам сможешь дописать). Удалять у себя услуги мегафона не буду, поэтому и экшены не все и отладку не делал. Переменная uslugaminus - название услуги которую надо пропустить, установи точное текстовое значение как на сайте. Логика шаблона: сначала удаляем услуги до нужной, потом удаляем услуги после нужной. Паузу задай такую чтобы удаленной услуги уже не было на странице услуг.
 

Вложения

  • Спасибо
Реакции: mr.green

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
После авторизации на сайте мегафон поставь эти экшены, но тут не все экшены дописаны (остались простые, думаю сам сможешь дописать). Удалять у себя услуги мегафона не буду, поэтому и экшены не все и отладку не делал. Переменная uslugaminus - название услуги которую надо пропустить, установи точное текстовое значение как на сайте. Логика шаблона: сначала удаляем услуги до нужной, потом удаляем услуги после нужной. Паузу задай такую чтобы удаленной услуги уже не было на странице услуг.
Спасибо конечно, но я на 5рке сижу, обновится сейчас нет возможности.
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 434
Баллы
113
Давайте все вместе скинемся чуваку на обновление, ну и шаблон напишем полностью?
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Спасибо конечно, но я на 5рке сижу, обновится сейчас нет возможности.
у тебя настолько древняя 5-ка ?
если да, то вопрос снят, если нет, то что мешает поставить 7-ку, соответствующей версии рядом с 5-кой ? денег эта операция не просит.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)