Как работать с элементами, которые нашёл через xpath

Mihalich

Пользователь
Регистрация
16.08.2016
Сообщения
39
Благодарностей
3
Баллы
8
Всем доброго дня!
Осваиваю HtmlAgilityPack и xpath. Есть такой код из примеров на форуме:

Код:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(instance.ActiveTab.DomText); // грузим DOM напрямую сюда
string result = "";

var var_xpath1 = "//div[@class='freebirdFormeditorViewOmnilistItemGutter']/div[@class='docssharedWizOmnilistMorselRoot' and 1]"; // условие xpath
var Nodes_list_1 = doc.DocumentNode.SelectNodes(var_xpath1); //  получаем список элементов по условию var_xpath1

if (Nodes_list_1 != null)
{
foreach (var res in Nodes_list_1) //  начинаем цикл
    {
        result = res.OuterHtml; //  получаем код каждого элемента
        project.SendWarningToLog("элемент = "+result,true); // в лог пишем
    }     
}
return result;
Как сохранить найденные элементы в список, чтобы в других С кубиках работать с этими элементами:
1. сделать клик по второму найденному элементу, чекбоксу
2. заполнить поле
3. проверить отмечен ли первый чекбокс и если нет, то кликнуть и отметить его
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 611
Благодарностей
4 601
Баллы
113
Клики и заполнения полей - это работа с зенновскими элементами. HtmlAgilityPack имеет свои элементы. Это не закомбинить в таком ключе.
Но это и не нужно, зенно тоже умеет работать с xPath
 

Mihalich

Пользователь
Регистрация
16.08.2016
Сообщения
39
Благодарностей
3
Баллы
8
Клики и заполнения полей - это работа с зенновскими элементами. HtmlAgilityPack имеет свои элементы. Это не закомбинить в таком ключе.
Но это и не нужно, зенно тоже умеет работать с xPath
Я правильно понимаю, что если нужно кликнуть чекбокс, кнопку, вписать что-то в поле, то HtmlAgilityPack не подходит? Нужно вот так делать:
Код:
var post1 = instance.ActiveTab.FindElementByXPath(xpath1, 0);
if (!post1.IsVoid)
    {
        post1.Click();
    }
else
    {
        return "не нашли элемент, или кривой xpath";
    }
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 611
Благодарностей
4 601
Баллы
113
.Click() - это не то. Нужен метод RiseEvent кажется. Вообще ты можешь просто сделать это через кубик и конвертировать его в код. Там ты увидишь метод и как кликнуть и как заполнить поле и как взять значение
 
  • Спасибо
Реакции: bizzon и Mihalich

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