Работа с элементами на странице

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Всем привет.

Пробую писать шаблон по фейсбук.
Столкнулся с такой проблемой. Мне нужно нажать кнопку "Нравится" в нужном посте. Но проблема в том, что на странице кнопки "Нравятся" есть не только у постов, но и у не нужных комментарицев сбоку и т.д. Кто работал с ФБ, тот понимает о чем речь.


Есть два элемента на странице:

<a aria-pressed="false" class="UFILikeLink _4x9- _4x9_ _48-k" data-testid="fb-ufi-likelink" href="#" role="button" tabindex="0">Нравится</a> //////////// это нужная мне кнопка "Нравится"

<a class="_48-k UFILikeLink" data-testid="fb-ufi-likelink" href="#" role="button" aria-label="Поставить «Нравится»" aria-live="polite" aria-pressed="false" data-ft="{&quot;tn&quot;:&quot;>&quot;}">Нравится</a> //////// это та кнопка "Нравится", которую мне нужно проигнорировать.



Почитал вот эту статью - http://zennolab.com/discussion/threads/pravilnyj-poisk-ehlementov-na-stranice-i-rabota-s-nimi-osnovy-i-xitrosti-dolzhen-znat-kazhdyj.23622/

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

Т.е. что я имею виду: В приведенном выше примере, видно, что в ненужных мне кнопках есть такие атрибуты как "aria-live", "aria-label". Таких атрибутов у первого варианта нет. Логично что хотелось бы отсеивать по их наличию. Но как это сделать я не понимаю.
Пробовал писать условие как arial-label -> notext -> Поставить «Нравится». Но кубик просто выдает ошибку. Что наверно и логично, так как этот атрибут есть не у всех кнопок.

Собственно вопрос: как писать условия, в которых говорилось бы, мол "Берем кнопки у которых нет атрибута "arial-label""

Еще вопрос в догонку:

Допустим нам надо нажать кнопку номер 3 по номеру совпадения. У нас есть кубик события нажатия, в котором сделана группа условий (т.е. не одно условие, а например 5). Нужно номер совпадения прописывать у каждого условия, или только у первого например.

Этот вопрос, конечно и сам могу потестить. Но мало ли, сходу ответите.

Благодарю.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 624
Благодарностей
4 608
Баллы
113
попробуй arial-label -> regexp-> ^(?<!Поставить «Нравится»)
 
  • Спасибо
Реакции: Antares

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18

doc

Client
Регистрация
30.03.2012
Сообщения
8 624
Благодарностей
4 608
Баллы
113
номер совпадения одинаковый
или не одинаковый, но пустым он точно быть не должен
 
  • Спасибо
Реакции: Antares

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
номер совпадения одинаковый
Теперь отрабатывает, но к сожалению тыкает как раз таки на кнопку на которую не нужно.

Такой момент (может чем то поможет прояснить ситуацию):
Обычно с 0 по 3 номер совпадению идут как раз кнопки "Нравится", которые не нужно нажимать. Сейчас у меня в этом экшене стоит номер совпадения нулевой (в переменной). И экшен как раз нажимает на 0-ой номер совпадения, т.е. на кнопку на которую не нужно.

Вариант поставить сразу 4 номер совпадения и не мучится не подходит, так как "обычно с 0 по 3", но бывает и не обычно.. (
 

Antares

Client
Регистрация
19.01.2018
Сообщения
131
Благодарностей
9
Баллы
18
Вроде как удалось решить текущую проблему
Я опять сделал arial-label -> notext -> Поставить «Нравится» как изначально планировал и поставил одинаковые номера совпадений и все норм отработало. Видимо в прошлый раз я ставил номер совпадения только у первого условия. Не дошел бы до этого без Вас, благодарю!
Появилась еще одна проблема, оказывается есть еще один тип кнопок "нравится", который мне не нужно нажимать ) эх..буду разбираться
 

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