В конструкторе действия сделать поиск по нескольким элементам как в совоствах действий

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
ну пусть будет 10000 тысяч. неадекватное число, но оно конечное и не будет мертвого цикла. ну можно вообще отказаться от числа. использовать время для аварийного выхода. главное хоть что то выводящее из цикла, при всяких нежданчиках, типа бесконечно подгружаемых страниц. смысл в том что цикл выйдет раньше чем будет достигнуто это значение.
Ты не улавливаешь сути, я изначально же написал. Надо пролайкать 20% постов. Это понятгно, что из каждого цикла нужен выход по ошибке, это основа вобще любого цикла, тут и говорить не о чем.
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
ну пусть будет 10000 тысяч. неадекватное число, но оно конечное и не будет мертвого цикла. ну можно вообще отказаться от числа. использовать время для аварийного выхода. главное хоть что то выводящее из цикла, при всяких нежданчиках, типа бесконечно подгружаемых страниц. смысл в том что цикл выйдет раньше чем будет достигнуто это значение.
Рендом то лучше в известном диапозоне использовать, для этого и считают количество элементов, инача на втором шаге уже можно промазать и выйти по красной...
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
А в текущем варианте я в конструкторе ищу элемент, потом сишарпом считаю количество элементов, потом руками переношу элементы в код, ковыряясь в мануале, потом кубиками леплю цикл, чтобы все элементы положить в список.. и только потом выполняю действия во втором цикле.

В дереве ДОМ найти похожий элемент выше или ниже нельзя, только копаясь в дереве. при этом потеряв где был.
Решило бы проблему подсветку в дереве всех найденных элементов одинаковых с выбранным.

при переключении в конструкторе действия в режим xPath вставляет только абсолютный путь. Даже если уками путь изменить в относительный, все равно не покажет ни число ни номер совпадений
Ох, и делать мне нечего, ох уж этот статус само изоляции ...
Первое тебе нужен удобный инструмент тестирования xpath я бы советовал именно этот

Второе надо бы почитать темы про Родителей и дочернии элементы, благо на форуме куча таких тем, часть из них в конкурсных статьях, пользуйся поиском.
После того как ты научился пользоваться xpath и составлять правильные выражения и проверять их типо так
57845

тебе ничего не стоит посчитать количество нужных элементов через с#
C#:
var tab = instance.ActiveTab;;
var xpath = "//*[contains(@class,'news__item-content')]";
var colichestvo = tab.FindElementsByXPath(xpath).Count;
return colichestvo;
 

Вложения

  • Спасибо
Реакции: Roman48

prodox

Client
Регистрация
28.08.2018
Сообщения
280
Благодарностей
55
Баллы
28
В конструкторе действия я могу найти только по одному атрибуту.
Элемент лайка и дизлайка одинаковые и классы одинаковые разница только во вложенном коде <g> и <g transform
Поэтому я сначала конструктором нахожу по классу, добавляю в проект и уже в редакторе свойства действия добавляю второе условие поиска в innerHtml. Ищу "<g>"
В редакторе действия есть возможность поиска по двум элементам. а в конструкторе действия только по одному элементу
57852

Смотрим как в конструкторе
57853

По сути там и там одно и тоже делается,
Только в конструкторе интерфейс позволяет найти по 1 атрибуту
А в редакторе действия можно искать по нескольким атрибутам
Минус в том что из редактора действия я не могу протестировать и найти совпадения
По сути конструктор действия и редактор действия редактируает одно и тоже но с разными по виду и возможностям интерфейсами и заставляет прыгать туда сюда.

То что конструктор не позволяет искать по двум параметрам, надеюсь понятно?

Если в красном прямоугольнике была бы такая же таблица как в редакторе действий, то это значительно бы экономило время

Было бы отлично если бы это вообще был одинаковый или один и тот же интерфейс конструктора и редактора.

А если бы была возможность кидать все совпадения в список и число совпадения передавать в переменную, то цены бы не было, так как можно было бы "выкинуть" парсер

И к вопросу о производительности. Я сначала сишарпом считаю элементы, а потом второй раз заставляю искать элемент для клика. И как известно если элемент отсутствует, то кубик может выполняться до 4 секунд два раза по 4 секунды это уже 8 секунд.

То что нет возможности хотябы простого действия - положить число совпадений в переменную ни в конструкторе ни в редакторе, это, считаю большое упущение. То что можно сделать сишарпом, мне говорить не нужно
 
Последнее редактирование:

Phoenix78

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
В конструкторе действия я могу найти только по одному атрибуту.
Элемент лайка и дизлайка одинаковые и классы одинаковые разница только во вложенном коде <g> и <g transform
Поэтому я сначала конструктором нахожу по классу, добавляю в проект и уже в редакторе свойства действия добавляю второе условие поиска в innerHtml. Ищу "<g>"
В редакторе действия есть возможность поиска по двум элементам. а в конструкторе действия только по одному элементу
дакторе, это, считаю большое упущение. То что можно сделать сишарпом, мне говорить не нужно
ну вот тут для тебя плохие новости :-)

на самом деле, в редакторе действия НЕТ возможность поиска по двум элементам. там идут записи для последовательного поиска по каждой записи. и он переходит к поиску следующей записи только в случае ОТСУТСТВИЯ найденных элементов по предыдущей записи. то есть если ищется <g> и <g transform> и по <g> имеется 5 элементов, а по <g transform> 10 элементов, то вернется 5 элементов <g>, а до поиска <g transform> дело не дойдет. и вернется 10 элементов <g transform>, если не найдет ни одного <g> элемента на первом шаге. Поэтому нет тут никакого поиска одновременно по нескольким атрибутам.
А вот с помощью xpath , который почему то воспринимается в штыки, поиск по нескольким условиям проще простого. например "//g || //p" выберет одновременно в коллекцию все g и p элементы :-) и так же используется в кубике , без всяких c# и ассемблеров *HAHA*
 
  • Спасибо
Реакции: luk911

Phoenix78

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

а если конкретно по сути вопроса, то ожидание элемента идет в соответствии с настройкой кубика где идет поиск. и если кубик настроен по умолчанию, то если элемента нет, то кубик будет ожидать до 5 секунд.
а если настроить на 0, то выйдет мгновенно, если элемента нет.
57857
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
мммм.... вы чего ? сговорились ? :-)
делаем рандом на каждом шаге. если попали в 20-ку , то делаем действие, если не попали то на начало цикла, через увеличение счетчика. ну что тут сложного ? :-)
Ты с какой планеты бро? Какие 20ки?
Ты знаешь что таеое 20%? Я тебя удивлю, это не просто число 20)))
 
  • Спасибо
Реакции: luk911

Mikhail B.

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
это как рандом будет настроен, поставил от 0 до 20 из 100, вот и 20% будет.
Ты с какой планеты бро? Какие 20ки?
Ты знаешь что таеое 20%? Я тебя удивлю, это не просто число 20)))
просто кто то не внимательно читает , что было написано. ну бывает , я тоже иногда пропускаю чего напишут :-)
выше писал. другими словами , рандом от 0 до 100 , а в кубике if условие на меньше 20. на выходе по зеленой получаем 20% , по красной 80% . красную увести на увеличение счетчика и на начало цикла, зеленую на клик по элементу, потом на дополнительную проверку бесконечного цикла и с нее на увеличение счетчика и на начало цикла.
такая простая операция вызывает столько вопросов даже у старожил, что уж тут говорить про неопытных.... :ds:
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
просто кто то не внимательно читает , что было написано. ну бывает , я тоже иногда пропускаю чего напишут :-)
выше писал. другими словами , рандом от 0 до 100 , а в кубике if условие на меньше 20. на выходе по зеленой получаем 20% , по красной 80% . красную увести на увеличение счетчика и на начало цикла, зеленую на клик по элементу, потом на дополнительную проверку бесконечного цикла и с нее на увеличение счетчика и на начало цикла.
такая простая операция вызывает столько вопросов даже у старожил, что уж тут говорить про неопытных.... :ds:
Не зная кол-во элементов, ты никогда не кликнешь по 20% элементам. То что ты написал, это 20% вероятность клика. Это совершенно другое пальто))
 
  • Спасибо
Реакции: luk911

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Не зная кол-во элементов, ты никогда не кликнешь по 20% элементам. То что ты написал, это 20% вероятность клика. Это совершенно другое пальто))
мое дело предложить. ну а шуба там или пальто, пусть каждый сам выбирает :-)
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

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

Вот пожалуйста.
По лайкам и дизлайкам
Я не гуру html но судя по коду, дизлайк это перевернутый и отзеркаленый лайк. Но разница то есть в коде, я ее нашел и применил. Вот и все.
2020-06-09_133426.jpg


Вот сам элемент, да по началу сложности возникли, но стоило просто скопировать два кода и найти разницу.
2020-06-09_134135.jpg

По счетчику
1) Берем туже регулярку которую в клике используем и считаем кол-во кнопок дизлайков.
2) Тупо высчитываем процент как 5 классе, делим на 100 и умножаем на 20. т.е. делаем 20%
3) Регуляркой округляем.
Все!

Да можно на шарпе красиво. А можно так. работает? Работает. О чем еще разговаривать, и что тут предлагать. Использовался функционал программы. Никакого намека на программирование))

2020-06-09_133655.jpg

Ну и собственно сам шаблон.
 

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Михаил, просто красавчик. :dq:
Ну что тут скажешь.... к сожалению есть такой тип людей, которым все не так и все не эдак. Зато самомнения выше крыши. Не знают функционал купленной ими программы и по любому затыку , сразу выкатывают претензии в виде багов или вот подобных предложений. Вот нет что бы просто спросить в разделе вопросов новичков ? нет , их тянет именно в раздел баги и предложений *HAHA*
еще и обижаются когда им указываешь , что они чего то не знают.
а с другой стороны, меньше пользователей зенки , меньше конкуренция нам, ахахах :-)
 

ulLite

Client
Регистрация
24.03.2019
Сообщения
75
Благодарностей
23
Баллы
8
Вообще по честному,прежде чем на ютуб лезть и прочие сложные сайты, надо с основ начать. От простого к сложному. Те кто сразу пытается сделать шаблон со сложными сайтами попадет на сложные вопросы, на которых ответы будут искать очень долго и терпения не хватит.
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
мммм.... вы чего ? сговорились ? :-)
делаем рандом на каждом шаге. если попали в 20-ку , то делаем действие, если не попали то на начало цикла, через увеличение счетчика. ну что тут сложного ? :-)
Сложного ничего только ты нагрузишь проц прилично, когда промахи будут шарится по дом в поисках несуществующего элемента. Бэд практикс. На одном потоке не заметишь этого конечно.
 
Последнее редактирование:

Phoenix78

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

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113

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