Как сделать клик по ссылке при нескольких условиях поиска?

sirJay

Client
Регистрация
22.07.2018
Сообщения
47
Благодарностей
4
Баллы
8
Здравствуйте

На сайте есть ссылки, мне необходимо сделать клик (или получить её номер) по той, у которой innerText равен заданной переменной, причем innerText нужно брать из соседнего смежного div'а.

1) Первый вопрос чуть отступительный, не могу разобраться почему классический вариант на кубиках не работает. На форуме я нашел, что несколько условий можно задать через экшен События:



Но, я добавляю событие, а у меня совсем другое выводится (IntelliSearch) (версия ZP 5.28.0.0) и список условий никак не выпадает как на картинке выше:




2) По основному вопросу: допустим такая разметка

HTML:
<div class="item">
    <a class="link" href="/go?counter_id=333">random_text</a>
    <div class="item-info">
        <a class="link_external" href="http://site.ru">site.ru</a>
        <span class="separator">•</span>
        <div class="counter_id">333</div>
    </div>
</div>
<div class="item">
    <a class="link" href="/go?counter_id=444">random_text</a>
    <div class="item-info">
        <a class="link_external" href="http://site2.ru">site2.ru</a>
        <span class="separator">•</span>
        <div class="counter_id">444</div>
    </div>
</div>
...
В шаблоне задана только переменная project.Variables["url"].Value = "site.ru"
Мне необходимо получить counter_id, то есть значение 333
Как посоветуете грамотнее всего это сделать (желательно через поиски по атрибутам родителей/детей, чем NextSibling и т.д.)?
Я тут накидал часть кода, но не знаю что с ней дальше можно делать. Допустим, пройдемся циклом по всем item. А как сделать поиск по HtmlElement?

Код:
// HtmlElementCollection items = instance.ActiveTab.FindElementsByXPath("//div[contains(@class, 'item')]");
var items = instance.ActiveTab.FindElementsByAttribute("div", "class", "item", "regexp");
foreach (HtmlElement item in items) {
    // if (item.InnerText == project.Variables["url"].Value) {
        // item.RiseEvent("click", "Full");
    // }
}
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113
1. Не работает потому, что ты что-то не так делаешь. Что именно, кто знает без Html кода страницы.
2. По принципу примера из вопроса 1 создаёшь кубик с двумя условиями. Ищем блок, у которого класс item-info и иннертекст включает в себя site.ru. Берём innerhtml. Из него парсим регуляркой наш айди. Код - это, конечно, красиво и гармонично, но не редко можно обойтись более простыми и наглядными решениями
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
так по какому параметру нужно клик делать? counter_id или link_external
 

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