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

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18

mr.green

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

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18
C#:
var list = project.Lists["1"];
string str = project.Variables["uslugaminus"].Value;
string numStr = string.Empty;
for (int i = 0; i < list.Count; i++)
{
    if (list[i].Contains(str))
        return i;
}
return -1;
1 - имя списка
uslugaminus - название услуги которую надо пропустить, название этой услуги копируй из этого списка и вставь в переменную uslugaminus, C# находит строку "uslugaminus" и выдает номер этой строки, я проверял, работает. У тебя список пустой или эта услуга всегда на первом месте?
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
C#:
var list = project.Lists["1"];
string str = project.Variables["uslugaminus"].Value;
string numStr = string.Empty;
for (int i = 0; i < list.Count; i++)
{
    if (list[i].Contains(str))
        return i;
}
return -1;
1 - имя списка
uslugaminus - название услуги которую надо пропустить, название этой услуги копируй из этого списка и вставь в переменную uslugaminus, C# находит строку "uslugaminus" и выдает номер этой строки, я проверял, работает. У тебя список пустой или эта услуга всегда на первом месте?
Я так и делаю. По сути задача стоит соотнести 2 элемента: кнопку Отключить и название услуги "Запрет моб.платежей" , каким образом С# куб это делает? Название услуги в DOM модели уникально, следовательно всегда будет возвращать 0 .zpr4.png
 

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18
Правильно С# срабатывает, кубик “IF“ значит сразу переведет шаблон по неуспешному выполнению на другую часть шаблона и будут удаляться услуги сразу со второй (например, Конференц-связь как у тебя скриншоте). У тебя там 13 услуг подключено?
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
Правильно С# срабатывает, кубик “IF“ значит сразу переведет шаблон по неуспешному выполнению на другую часть шаблона и будут удаляться услуги сразу со второй (например, Конференц-связь как у тебя скриншоте). У тебя там 13 услуг подключено?
У меня в 100% случаев идет по неуспеху и там спотыкается об "ловушку".
 

mr.green

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

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18
У меня в 100% случаев идет по неуспеху и там спотыкается об "ловушку".
После неуспеха там настроен клик на кнопку "Отключить" сразу у второй услуги в списке. Там сделать еще один или несколько кликов подтверждающих удаление услуги и подождать некоторое время для того чтобы эта услуга пропала в списке услуг на сайте. Далее все в цикле по кругу - переходим на страницу услуг, удаляем вторую услугу и т.д.
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
Имеем список услуг(1.txt), как получить порядковый номер(сверху-вниз) искомой услуги?
 

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18
Имеем список услуг, как получить порядковый номер(сверху-вниз) искомой услуги?
кубик C# это делает, в твоем случае порядковый номер 0 (т.е. 1, но в зеннопостере нумерация с 0).
Там тебе осталось настроить подтверждение удаления услуги и поставить паузу небольшую.
 

mr.green

Client
Регистрация
26.09.2019
Сообщения
211
Благодарностей
125
Баллы
43
кубик C# это делает, в твоем случае порядковый номер 0 (т.е. 1, но в зеннопостере нумерация с 0).
Там тебе осталось настроить подтверждение удаления услуги и поставить паузу небольшую.
Прошу прощения, с# код работает, сам затупил, но в твоем шабе есть глобальная ошибка, ты не учел то что номера кнопок меняются динамически, надо ставить проверку в каждой итерации. В общем и целом ты меня спас.
Команда зенолаба лукавит говоря, что ZP не требует знаний программирования, вот яркий пример, тривиальная задача не осуществима без волшебного С# кода.
 

discus

Client
Регистрация
21.09.2020
Сообщения
87
Благодарностей
44
Баллы
18
в твоем шабе есть глобальная ошибка, ты не учел то что номера кнопок меняются динамически, надо ставить проверку в каждой итерации
В коде страницы я не нашел номера кнопок, там на странице теги без атрибутов почти и я просто учитывал номер совпадения. После того как нужная услуга становится на первое место экшеном кликаем на вторую кнопку Отключить (номер совпадения 1).
Команда зенолаба лукавит говоря, что ZP не требует знаний программирования, вот яркий пример, тривиальная задача не осуществима без волшебного С# кода.
Этот код С# я нашел на форуме, большинство решений и подобных кодов есть на форуме.
 
  • Спасибо
Реакции: mr.green

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 974
Благодарностей
4 431
Баллы
113

mr.green

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

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 974
Благодарностей
4 431
Баллы
113

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