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

Meteorburn

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

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

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

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

Но так как имя атрибута известно заранее, решил, что и так будет работать.
 
Я обычно привязываюсь к значениям aria-label= они реже всего меняются
Тут дело не в привязке было. А в том, что при клике на кнопку элемент изменяется только добавлением нового атрибута без значения.
Чтобы проверить выполнилось ли нажатие на кнопку, нужно проверить появился ли новый атрибут.
 
Я прочитал по ссылке тред. Объясни своими словами, почему так считаешь?
На сколько я помню: IsVoid кеширует данные, а IsNull - каждый раз отправляет запрос в инстанс чтоб проверить.
Я на всякий случай поэтому использую именно IsNull, чтоб в случае изменения DOM-дерева (когда тег удалился/изменился) - не получить результат старого состояния. С IsNull это исключено
 
  • Спасибо
Реакции: Jufel, Meteorburn и orka13
Хз как лучше. Обычно же в задачи знаем атрибут, и ищем значение. А как список атрибутов стянуть не сталкивался. Брать весь код нужного элемента:
C#:
Развернуть Свернуть Копировать
HtmlElement he = instance.ActiveTab.FindElementByXPath(@"//span[.='Вопросы новичков']", 0);
return he.OuterHtml; // вернет: <span itemprop="name">Вопросы новичков</span>
и регулярками потом парсить,. но наверняка есть метод получше. Гугл тоже не особо помог:
htmlagilitypack get attributes list
Помогите пжл новичку. Куда оно сохраняется чтобы парсить?
 

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