FindElementByAttribute как выбрать последнее совпадение?

Delvig

Client
Регистрация
07.09.2016
Сообщения
132
Благодарностей
131
Баллы
43
Здравствуйте, как при использовании метода FindElementByAttribute выбрать последнее совпадение? При использовании экшена "клик" можно задать просто end. Поиск мне не дал ответа, вот только описание к версии 5.9.9.0:

[+] Добавлен метод Tab.FindElementByAttribute(string tags, string attrName, string attrValue, string searchKind, string number), который в качестве значения «number» может принимать диапазоны значений, к примеру «random1(1,12-15,35-end)».

Но в C# "end" будет просто переменной, которую надо задавать. В голову приходит мысль только самостоятельно считать количество совпадений, а потом подставлять. Есть ли какие-то другие варианты? Спасибо.
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
А что если использовать FindElementsByAttribute?
Код:
var collection = instance.ActiveTab.FindElementsByAttribute (...);
return collection.GetByNumber(collection.Count - 1);
 
  • Спасибо
Реакции: Dmffmd, arhip1985 и doc

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Здравствуйте, как при использовании метода FindElementByAttribute выбрать последнее совпадение? При использовании экшена "клик" можно задать просто end. Поиск мне не дал ответа, вот только описание к версии 5.9.9.0:

[+] Добавлен метод Tab.FindElementByAttribute(string tags, string attrName, string attrValue, string searchKind, string number), который в качестве значения «number» может принимать диапазоны значений, к примеру «random1(1,12-15,35-end)».

Но в C# "end" будет просто переменной, которую надо задавать. В голову приходит мысль только самостоятельно считать количество совпадений, а потом подставлять. Есть ли какие-то другие варианты? Спасибо.
ну так задавай "end", не понимаю проблемы
 

Delvig

Client
Регистрация
07.09.2016
Сообщения
132
Благодарностей
131
Баллы
43
А что если использовать FindElementsByAttribute?
Код:
var collection = instance.ActiveTab.FindElementsByAttribute (...);
return collection.GetByNumber(collection.Count - 1);

Попробовал.
Код:
var collection = instance.ActiveTab.FindElementsByAttribute ("a", "href", "albums", "regexp");
return collection.GetByNumber(collection.Count - 1);
Возвращает ZennoLab.CommandCenter.HtmlElement
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Возвращает ZennoLab.CommandCenter.HtmlElement
Код:
var collection = instance.ActiveTab.FindElementsByAttribute ("a", "href", "albums", "regexp");
var element = collection.GetByNumber(collection.Count - 1);
// а тут уже делаем что хотим с этим элементом, например вернём значение href
return element.GetAttribute("href");
// return element.innerText; // внутренний текст.
// element.RiseEvent("click", "Full"); // кликаем по элементу.
Доступные свойства и методы HtmlElement'а
 
  • Спасибо
Реакции: lybimiy86 и Dmffmd

TazMan

Client
Регистрация
05.01.2017
Сообщения
236
Благодарностей
37
Баллы
28
добрый ! есть вот такой код
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("i", "class", "event2-icon event2-icon--accepted", "regexp", 0);

как нажать на элемент который как раз НЕ содержит данного class типа
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("i", "class", !=="event2-icon event2-icon--accepted", "regexp", 0);
 

SanchoPancho

Client
Регистрация
09.12.2015
Сообщения
165
Благодарностей
82
Баллы
28
Попробовал.
Код:
var collection = instance.ActiveTab.FindElementsByAttribute ("a", "href", "albums", "regexp");
return collection.GetByNumber(collection.Count - 1);
Возвращает ZennoLab.CommandCenter.HtmlElement
Подскажите как получить номер последнего совпадения
 

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