Проблема обработки Selenium WebElement с использованием XPath и CssSelector - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть сценарий ниже в Selenium. На странице у меня есть текстовое поле, где мы можем выбрать, что его локатор использует либо xpath, либо css, однако, если мы используем xpath, он не работает в Chrome, а если мы используем css, то он не работает в firefox .

Нет другого способа выбрать элемент, и, честно говоря, это вопрос интервью, с которым я столкнулся в топовом MN C, и я не знаю, как с этим справиться.

Не могли бы вы помочь мне в этом.

1 Ответ

0 голосов
/ 06 февраля 2020

В идеале каждый WebElement в DOM-дереве должен быть однозначно идентифицирован как с , так и .

Однако есть несколько преимуществ и компромиссов с обеими стратегиями Locator , и некоторые из них следующие:

  • Люди в пользу cssSelector говорит, что он более читабелен и быстрее (особенно при работе с Inte rnet Explorer).
  • Хотя сторонники XPath заявляют о своей способности переворачивать страницу (в то время как cssSelector не может).
  • Обход DOM в старых браузерах, таких как IE8, не работает с cssSelector , но подходит для XPath .
  • XPath может пройти по DOM (например, от ребенка к родителю), тогда как cssSelector может проходить только по DOM (например, от родителя к ребенку)
  • Однако не в состоянии пройти DOM с cssSelector в старом Это не обязательно плохо, так как это скорее показатель того, что ваша страница имеет плохой дизайн и может извлечь выгоду из некоторой полезной разметки.
  • Бен Бертон упоминает, что вы должны использовать cssSelector , потому что так создаются приложения. Это облегчает написание тестов, их обсуждение и помощь других.
  • Адам Гоше говорит, что нужно принять более гибридный подход - сначала сосредоточиться на идентификаторах, а затем cssSelector и использование XPath только тогда, когда вам это нужно (например, поднятие DOM) и что XPath всегда будет более мощным для продвинутых локаторов.

Нижняя строка, независимо от / / / / тип браузера, элементы всегда можно идентифицировать с помощью XPath и CssSelector .


Ссылки

Вы можете найти пару подробное обсуждение в:

...