Как нажать нужный чекбокс?

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
На примере писем в мэйл.ру. Письмо может оказаться 1, 2, 3, 10 в очереди. Нашел блок в дереве элементов, отвечающий за все составляющие нужного письма. А как нажать на чек бокс, ориентируясь по имени отправителя и заголовку письма?..
Тупо отправить в конструктор действий тут не вариант. :(

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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 884
Баллы
113
Есть несколько вариантов.
1. Наиболее простой, если знать код. Ищете основной элемент, содержащий нужные значения, далее уже клацаете по дочернему - чекбоксу.
2. Перебирать в цикле письма пока не найдёте нужное и потом клацать по чекбоксу с нужным номером.
 

СТЕПАН

Moderator
Регистрация
17.03.2013
Сообщения
951
Благодарностей
353
Баллы
63
бери номер формы нужного заголовка и ставь чек бокс того же номера
 

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
бери номер формы нужного заголовка и ставь чек бокс того же номера
Не понял, что за номер заголовка, как его брать и куда ставить при работе с чек-боксом. Но я тут подумал и пришел к выводу, что можно попробовать сделать так: зная имя отправителя и заголовок, можно спарсить при помощи регулярки outerhtml блока с превью письма (в цитате).

<div data-bem="b-datalist__item" data-id="1:1cbfabd5f92916bc:0" class="b-datalist__item js-datalist-item b-datalist__item_unread"><div class="b-datalist__item__body"><a data-title="Команда Почты Mail.Ru <[email protected]>" rel="history" href="https://e.mail.ru/thread/1:1cbfabd5f92916bc:0/" class="js-href b-datalist__item__link" data-name="link" data-subject="Как воспользоваться почтой с мобильного?"><div class="js-item-checkbox b-datalist__item__cbx"><div data-bem="b-checkbox" data-id="1:1cbfabd5f92916bc:0" class="js-checkbox b-checkbox"><div class="b-checkbox__box"></div><div class="b-checkbox__checkmark"></div><input class="b-checkbox__input" name="" value="" disabled="disabled" type="hidden"></div></div><div class="b-datalist__item__status"><span class="b-datalist__item__status-reply"></span><span class="b-datalist__item__status-unread"><div data-title="Пометить прочитанным" data-id="1:1cbfabd5f92916bc:0" data-act="unread" class="b-letterstatus b-letterstatus_unread"><div class="b-letterstatus__icon ico ico_letterstatus ico_letterstatus_onhover ico_letterstatus_unread"></div></div></span></div><div class="b-datalist__item__flag"><div data-title="Пометить флажком" data-bem="b-flag" data-id="1:1cbfabd5f92916bc:0" data-act="flag" class="js-hover b-flag b-flag_onhover"><b></b></div></div><div class="b-datalist__item__panel"><div class="b-datalist__item__date"><span class="b-datalist__item__value b-datalist__item__date__value" title="28 октября, 16:53">28 окт</span></div><div class="b-datalist__item__pic" style="background-image: url(&quot;https://filin.mail.ru/[email protected]&amp;[email protected]&amp;trust=false&amp;sign=5aeb4c60ca398472d57388886156492c3ca33548&amp;&amp;&amp;width=32&amp;height=32&amp;name=Команда Почты Mail.Ru&amp;version=4&amp;build=7&quot;-);"></div><div class="b-datalist__item__info"><div class="b-datalist__item__wrapper"><div class="b-datalist__item__subj">Как воспользоваться почтой с мобильного?<span class="b-datalist__item__subj__snippet">Здравствуйте, Михаил! Пользуйтесь Почтой с мобильного Почта всегда рядом, даже если вы далеко от ком</span></div></div><div class="b-datalist__item__addr">Команда Почты Mail.Ru</div></div></div></a></div></div>
Из него затем спарсить значение data-id (1:1cbfabd5f92916bc:0) - ID письма.

А дальше найти чек-бокс с айдишником письма.


Только я не уверен в следующих вещах:
1) Можно ли в указанное на скрине значение подставить переменную?
2) Все гда ли будет нужный элемент иметь порядковый номер 27. Можно как-то сделать так, чтобы было всего одно совпадение? Чтоб искало не на всей странице, где outerhtml чекбокса встречается 27 раз, а например только в блоке писем?

 

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