Mozilla поиск по xpath

Обновлено: 06.07.2024

Я использую инструмент разработчиков Chrome для проверки элементов и формирования моего XPath. Я проверяю его с помощью плагина Chrome XPath Checker, однако он не всегда дает мне результат. Что является лучшим способом, чтобы проверить мое выражение XPath.

Я также пытался использовать Firebug для проверки ошибки, а также использовать FirePath для проверки. Но Firepath также проверяет XPath.

Мой последний вариант-использовать Selenium WebDriver для подтверждения моего XPath.

  • поиск в панели Elements , как показано ниже
  • выполнить $x() и $$() в панели Console , как показано в ответе Лоуренса
  • сторонние расширения (не очень необходимые в большинстве случаев, могут быть излишними)
  1. нажмите F12 , чтобы открыть Chrome Developer Tool
  2. на панели" элементы " нажмите Ctrl + F
  3. в поле поиска введите XPath или CSS селектор, если элементы будут найдены, они будут выделены желтым цветом.
  1. либо выберите "веб-консоль" в меню веб-разработчик в Меню Firefox (или меню Сервис, Если вы отображаете строку меню или находитесь на Mac OS X)
    или нажмите клавишу Ctrl + сдвиг + K ( команда + вариант + K на OS X) сочетание клавиш.
  2. В командной строке внизу используйте следующее:

    • $() : возвращает первый элемент, который соответствует. Эквивалентно document.querySelector() или вызывает функцию $ на странице, если она существует.

    • $$() : возвращает массив узлов DOM, которые совпадают. Это похоже на document.querySelectorAll() , но возвращает массив вместо NodeList .

    • $x() : вычисляет XPath выражение и возвращает массив соответствующих узлов.

  1. Установить Поджигатель
  2. Установить Огненный Путь
  3. нажмите F12 , чтобы открыть Firebug
  4. переключиться на FirePath панель
  5. в раскрывающемся списке выберите XPathor CSS
  6. введите, чтобы найти

Вы можете открыть консоль в Chrome и Firefox и проверить XPath, введя $x("your_xpath_here") . Это вернет массив совпадающих значений. Если она пуста, вы знаете, что на странице нет совпадений.

Например:

Обновление (Март 2016):
Новый скриншот из Chromium v48:

*

В Firefox 50.1, поджигатель больше не доступен, так что я должен использовать инспектор, но я не могу найти копию ---&GT вариант; XPath, который был доступен в Firebug. Как я могу найти путь XPath элемента с помощью инспектора?

Следуйте Ниже Шаги:

Шаг 1 : Щелкните правой кнопкой мыши на странице -и GT; выберите элемент (инспектировать элемент)

Шаг 2 : выбрать элемент из страницы`

Шаг 3 : щелкните правой кнопкой мыши на выделенный код HTML -и GT; копировать -> в XPath

Введите описание изображения здесь

Следует, однако, отметить, что эти селекторы (в XPath или CSS) не являются точными и надежными, и вы должны избегать использования этой функции ничего, кроме редких крайних случаях.

В Firefox вы можете использовать инструменты разработчика-консоль для проверки в XPath, как это:

1.Откройте инструменты веб-разработчика.

2.Нажмите на консоль

3.Типа $Х("по пути" - а)

Это позволит вам проверить, что ваш путь является действительным.

  1. Откройте любую веб-страницу в браузер бледная луна
  2. Щелкните правой кнопкой мыши на элемент страницы
  3. Выберите: "не инспектировать элемент с помощью инструментов разработчика" и (в появившемся окне с элементом выделены)
  4. Щелкните правой кнопкой мыши выделенный элемент
  5. Выберите: "не копировать XPath"и

И там Вы имеете его. Вы получите "по полной" и в XPath, даже если элемент имеет свой идентификатор.

XPath Использование Консоли В Firefox: Ответить ссылка из XPath с помощью консоли Firefox В селен WebDriver

Действия:

Нажмите клавишу F12( общих для всех браузеров), теперь инструмент откройте Firefox разработчик, как показано ниже.

Naviagte на вкладку консоль

На редактора консоли мы можем проверить наш язык XPath

Для проверки XPath, которые мы должны использовать наши XPath в следующем формате : $х("и в XPath и")

Пойти и посмотреть в XPath учебник по w3schools или где угодно.

Акцент на отношения между элементами.

cross

Я уже не раз писал, как и многие до меня, что несмотря на распространенное мнение поиск с помощью XPATH не медленнее поиска с помощью CSS локаторов. Выдалась свободная минутка и решил потестить немного скорость поиска элемента с помощью разных локаторов и в разных браузерах: Chrome, Firefox, InternetExplorer. Естественно, замеры относительны и воспроизводимы с теми же цифрами только на моей машине, однако есть интересные тенденции.

В Python есть удобная утилита timeit в стандартной библиотеке, к сожалению не смог найти что-то похожее на Java, поэтому просто накидал метод который 100 раз подряд находит элемент по заданному локатору и выдает среднее затраченное время.

XPATH

CSS

ID

CLASS

NAME

Я конечно знал, что Chrome быстрый, в последнее время я работаю только с ним, но не ожидал, что Internet Explorer будет настолько медленнее, искренне сочувствую тем, кому приходится тестировать УИ на нем!

Второй неожиданностью стало то, что Firefox пусть и немного, но побыстрее Chrome.

Плюс достаточно интересная вещь, что поиск через XPATH в IE вполовину быстрее всех остальных видов поиска, то есть тем бедолагам, что вынуждены его использовать, рекомендую все локаторы переписать на XPATH.

Естественно, замеры я проводил не один раз и в разном порядке, как 1 локатор за сессию, так и все подряд.

Не успокоившись на этом, запустил консоль Python, который сейчас активно осваиваю, и воспользовался утилитой timeit, которая выдает среднее время за указанное количество повторов функции. Локаторы и сайт естественно остались теми же. Цифры были уже другие, но закономерности сохранились, а именно: Firefox немного быстрее Chrome, Internet Explorer на порядок медленнее обоих браузеров, но при этом поиск по XPATH у него работает гораздо бодрее всех остальных.

1) поиск по XPATH не быстрее CSS, а для браузера Internet Explorer даже наоборот, есть смысл все локаторы писать только на XPATH!

2) Chrome не самый быстрый браузер, пусть и совсем чуть-чуть, но Firefox ищет побыстрее, видимо обновления пошли на пользу Лисе

3) Internet Explorer must die!

4) поиск по id или class имеет только преимущество в удобстве написания локатора, если есть уникальные id или имя класса. Вопреки некоторым встреченным в интернете рассказам, поиск по id или class не быстрее остальных видов поиска


Как вы, возможно, уже поняли, чтобы управлять элементами страницы, нам нужно сначала найти их. Selenium использует так называемые локаторы, чтобы находить элементы на веб-странице.

В Selenium есть 8 методов которые помогут в поиске HTML элементов:

Вы можете использовать любой из них, чтобы сузить поиск элемента, который вам нужен.

Запуск браузера

Тестирование веб-сайтов начинается с браузера. В приведенном ниже тестовом скрипте запускается окно браузера Firefox, и осуществляется переход на сайт.

Поиск элемента по ID

Поиск элемента по имени

Атрибут имени используются в элементах управления формой, такой как текстовые поля и переключатели (radio кнопки). Значения имени передаются на сервер при отправке формы. С точки зрения вероятности будущих изменений, атрибут name, второй по отношению к ID.

driver . find_element_by_name ( "comment" ) . send_keys ( "Selenium Cool" )

Поиск элемента по тексту ссылки

HTML для которого будет работать

Поиск элемента по частичному тексту ссылки

Selenium позволяет идентифицировать элемент управления гиперссылкой с частичным текстом. Это может быть полезно, если текст генерируется динамически. Другими словами, текст на одной веб-странице может отличаться при следующем посещении. Мы могли бы использовать общий текст, общий для этих динамически создаваемых текстов ссылок, для их идентификации.

driver . find_element_by_partial_link_text ( "ance" ) . click ( )

HTML для которого будет работать

Поиск элемента по XPath

driver . find_element_by_xpath ( "//*[@id='div2']/input[@type='checkbox']" ) . click ( )

HTML для которого будет работать

Некоторые тестеры чувствуют себя "запуганными" сложностью XPath. Тем не менее, на практике существует только ограниченная область для использования XPath.

Избегайте XPath из Developer Tool

Избегайте использования скопированного XPath из инструмента Developer Tool.

Инструмент разработчика браузера (щелкните правой кнопкой мыши, чтобы выбрать «Проверить элемент», чтобы увидеть) очень полезен для определения веб-элемента на веб-странице. Вы можете получить XPath веб-элемента там, как показано ниже (в Chrome):

Поиск HTML элементов

Скопированный XPath для второй ссылки «Нажмите здесь» в примере:

Читайте также: