Xpath: Получить имя атрибута в строку

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 439
Благодарностей
564
Баллы
113
Не могу понять, как получить имя атрибута, result (не значение) методом tab.FindElementByXPath или другим способом
<button noink="" class="test1" role="button" tabindex="0" animated="" elevation="0" aria-disabled="false" aria-label="test2" result="">

Спасибо
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 159
Благодарностей
2 159
Баллы
113
Хз как лучше. Обычно же в задачи знаем атрибут, и ищем значение. А как список атрибутов стянуть не сталкивался. Брать весь код нужного элемента:
C#:
HtmlElement he = instance.ActiveTab.FindElementByXPath(@"//span[.='Вопросы новичков']", 0);
return he.OuterHtml; // вернет: <span itemprop="name">Вопросы новичков</span>
и регулярками потом парсить,. но наверняка есть метод получше. Гугл тоже не особо помог:
htmlagilitypack get attributes list
 
  • Спасибо
Реакции: Meteorburn

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 439
Благодарностей
564
Баллы
113
Выход такой нашёл для себя.

C#:
HtmlElement he = tab.FindElementByXPath("//button[@result]", 0);
            if (he.IsVoid != true)
            {
            
            }
 
Последнее редактирование:
  • Спасибо
Реакции: doc

orka13

Client
Регистрация
07.05.2015
Сообщения
2 159
Благодарностей
2 159
Баллы
113
Выход такой нашёл для себя.

C#:
HtmlElement he = tab.FindElementByXPath("//button[@result]", 0);
            if (he != true)
            {
           
            }
Так задача стояла "Получить имя атрибута" (неизвестного наперед). А здесь просто обычный поиск элемента по наличии известного атрибута без уточнения его значения.
 

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 439
Благодарностей
564
Баллы
113
Так задача стояла "Получить имя атрибута". А здесь просто обычный поиск элемента по наличии атрибута без уточнения его значения.
Да, изначально задача стояла получить список всех атрибутов и потом выпарсить искомый. Задача именно такая была.

Но так как имя атрибута известно заранее, решил, что и так будет работать.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 914
Благодарностей
6 381
Баллы
113
Я обычно привязываюсь к значениям aria-label= они реже всего меняются
 

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 439
Благодарностей
564
Баллы
113
Я обычно привязываюсь к значениям aria-label= они реже всего меняются
Тут дело не в привязке было. А в том, что при клике на кнопку элемент изменяется только добавлением нового атрибута без значения.
Чтобы проверить выполнилось ли нажатие на кнопку, нужно проверить появился ли новый атрибут.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 914
Благодарностей
6 381
Баллы
113
по идее можно тога было проверить так
C#:
//button[@result='']
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 852
Баллы
113

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 439
Благодарностей
564
Баллы
113

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 852
Баллы
113
Я прочитал по ссылке тред. Объясни своими словами, почему так считаешь?
На сколько я помню: IsVoid кеширует данные, а IsNull - каждый раз отправляет запрос в инстанс чтоб проверить.
Я на всякий случай поэтому использую именно IsNull, чтоб в случае изменения DOM-дерева (когда тег удалился/изменился) - не получить результат старого состояния. С IsNull это исключено
 
  • Спасибо
Реакции: Zedx, Meteorburn и orka13

wmz1986

Client
Регистрация
30.05.2016
Сообщения
66
Благодарностей
7
Баллы
8
Хз как лучше. Обычно же в задачи знаем атрибут, и ищем значение. А как список атрибутов стянуть не сталкивался. Брать весь код нужного элемента:
C#:
HtmlElement he = instance.ActiveTab.FindElementByXPath(@"//span[.='Вопросы новичков']", 0);
return he.OuterHtml; // вернет: <span itemprop="name">Вопросы новичков</span>
и регулярками потом парсить,. но наверняка есть метод получше. Гугл тоже не особо помог:
htmlagilitypack get attributes list
Помогите пжл новичку. Куда оно сохраняется чтобы парсить?
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 159
Благодарностей
2 159
Баллы
113

orka13

Client
Регистрация
07.05.2015
Сообщения
2 159
Благодарностей
2 159
Баллы
113

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