Как написать общий xpath? - PullRequest
       1

Как написать общий xpath?

0 голосов
/ 12 октября 2019

Я пытаюсь написать общий XPath для следующих сайтов. Оба сайта имеют одинаковые элементы в пользовательском интерфейсе, но структура DOM отличается при взаимодействии с элементами.

Здесь я пытаюсь получить текст количества левого и правого глаза

Я получаю тексткогда я использую XPath ниже для Норвегии и Великобритании соответственно, но когда я пытаюсь написать общий XPath, который будет работать на обоих сайтах, я сталкиваюсь с проблемой:

Итак, я написал ниже, XPath будет работать на обоих сайтах, но этоне.

//a[contains(@id,'qty-1')] 

Ожидаемое поведение:

Я хочу количество для элемента левого и правого глаза на обоих сайтах с одинаковым XPATH.

1 Ответ

1 голос
/ 12 октября 2019

Для Норвегии есть подписка и для платежных блоков Великобритании. Для Норвегии есть два HTML div .one-off и .subscribe под .payment-option.row.two-eyes css. Только для Великобритании .one-off.

Если вам нужен общий xpath для обоих, используйте ниже:

Слева: //div[contains(@class,'payment-option')]//div[contains(@class,'-selected') and (@style='display: block;' or @style='')]//div[contains(@class,'-left-eye')]//span[@class='ui-selectmenu-status']

Справа: //div[contains(@class,'payment-option')]//div[contains(@class,'-selected') and (@style='display: block;' or @style='')]//div[contains(@class,'-right-eye')]//span[@class='ui-selectmenu-status']

Этот xpath зависит от позиции в документе и не является «безопасным». Я предлагаю использовать отдельное с простыми локаторами или использовать div[class$='-right-eye'] .ui-selectmenu-status css селектор, найти все элементы и отфильтровать по видимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...