2015-04-21 4 views
4

У меня есть два элемента, которые имеют одинаковые атрибуты, но показаны по одному на странице (когда один отображается, другой исчезает). Единственное различие между ними состоит в том, что элемент который отображается, будет иметь селектор «:: before». Можно ли использовать XPath или CSS селектор, чтобы получить элемент на основе его идентификатора и имеет ли он или нет :: до тогоЭлемент выбора WebDriver, который имеет :: до

enter image description here

+0

Элементы не имеют идентификатора. Почему бы вам просто не выбрать его с помощью имени класса? – LittlePanda

+0

, потому что оба элемента имеют одно и то же имя класса –

+1

. Как вы проводите различие между ними в CSS, чтобы применить псевдо-элемент ': before' к правильному? – Shaggy

ответ

3

Держу пари, и попробовать с яваскриптом раствором выше.

С тех пор :: after & :: before является псевдоэлементом, который позволяет вставлять содержимое на страницу из CSS (без необходимости в HTML). Хотя конечный результат на самом деле отсутствует в DOM, он появляется на странице так, как будто это - вы видите это, но не можете найти его с помощью xpath, например (https://css-tricks.com/almanac/selectors/a/after-and-before/).

Я также могу предложить, если возможно, иметь разные идентификаторы или если они находятся в другом месте в DOM, сделать более сложным xpath, используя элементы выше/ниже и посмотреть, отображается ли оно.

Смежные вопросы