запрос xpath для поиска динамической ссылки по тексту

Можем ли мы найти ссылку с [contain(text(),'text')] с запросом xpath на странице? Я попытался найти его на странице, но не смог найти. Я выполняю неправильный запрос, чтобы найти ссылку по тексту? или это невозможно? Однако я могу искать ссылку с //a[text()='text_i_want_to_find']/@href, этот запрос работает, только если href содержит "text_i_want_to_find".

Но что, если текст ссылки - это что-то link 'Hello world', а href содержит «HelloWorld». Это затрудняет работу с динамической генерацией ссылок, когда у нас есть подтверждающий текст ссылки, но мы не знаем, что содержит href? Как обрабатывать такую ​​ссылку, можем ли мы искать ссылку по тексту. Кроме того, я хочу узнать больше о том, как xpath работает для поиска элемента на странице. Буду признателен вам за вклад.


person Karim Narsindani    schedule 20.02.2015    source источник
comment
Вам подходит предлагаемое решение?   -  person aberna    schedule 21.02.2015
comment
Нет, он все еще не работает ... Пример кода ссылки HTML <li> <a id="Alert" href="AlertSettings.aspx">Alert Settings</a> </li>, когда я запускаю запрос xpath //a[contains(.,'ALERT SETTINGS')]/@href или //a[contains(.,'ALERT SETTINGS')]/@href, он не возвращает никакого значения   -  person Karim Narsindani    schedule 22.02.2015
comment
Вы можете опубликовать URL страницы, над которой работаете?   -  person aberna    schedule 22.02.2015
comment
Извините, я не могу предоставить вам URL-адрес страницы, но приведенный выше html-код найден для ссылки   -  person Karim Narsindani    schedule 23.02.2015
comment
Другой подход - работа с идентификатором с таким выражением // a [@ id = 'Alert'] / @ href   -  person aberna    schedule 23.02.2015
comment
Функция contains () чувствительна к регистру, поэтому она не работает, когда вы пытаетесь сопоставить параметры ALERT SETTINGS в своем примере. Попробуйте вместо этого использовать «Настройки предупреждений». Я бы сказал, что ответ @aberna правильный.   -  person mhall    schedule 08.04.2015


Ответы (1)


Если я точно понимаю, о чем вы просите, я бы предложил использовать функцию частичного совпадения, используя этот шаблон:

//a[contains(.,'text')]/@href

fn: contains (string1, string2) Возвращает true, если string1 содержит string2, в противном случае возвращает false http://www.w3schools.com/xpath/xpath_functions.asp

person aberna    schedule 20.02.2015