Как преобразовать запросы XPath в CSS селекторы?

Добрый день! Я обычно использую в качестве локаторов Xpath, но в одном из тестов можно применить только CSS. Как можно преобразовать следующие запросы:

(".//*[@id='days-container']//*[@id='839c06e1-5508-4839-9a70-63b4594a144d']")
(".//*[@id='839c06e1-5508-4839-9a70-63b4594a144d']")

Ну я скорее всего не понял вопрос. id - уникальный и может быть толкьо один на страничке, по этому попробуйте как-то так ("#839c06e1-5508-4839-9a70-63b4594a144d") и в первом и вовтором случаи должно работать
я всегда проверяю через мозилку адон Xpath, только я не беру адоном локатор а пишу самописный локатор туда, как бы проверяю или я правильно написал

Чтобы получить ответ на такой вопрос, необходимо наверное приложить кусок исходного кода страницы? Или не обязательно?

Исходный код приложить не могу.

Я проверяю локаторы через Firepath, и при поиске следующих CSS selectors ничего не находит на странице:

#839c06e1-5508-4839-9a70-63b4594a144d
#days-container',#839c06e1-5508-4839-9a70-63b4594a144d

Для ответа на вопрос ты предоставляешь слишком мало информации

Есть подозрение, что id динамические. Попробуйте по какому нибудь аттрибуту искать

  1. Почему можно применить только CSS?
  2. Поскольку это id, можно делать либо поиск по id, либо по css #. В данном случае локатор #839c06e1-5508-4839-9a70-63b4594a144d будет правильным.
  3. работает ли локатор в тесте? Может просто глюк Firepath или забыла сменить алгоритм поиска? :slight_smile: Слева от поля, в которое нужно вводить локатор, есть менюшка с выбором
  1. Я пытаюсь выполнить d’n’d 'этим способом: How To Test HTML5 Drag and Drop
    JQuery использует CSS-подобный синтаксис. Xpath не работает в этом случае.

2,3. CSS и в тесте не работает. И даже в firepath если на строке с этим элементом выбрать “set CSS”, в строку вставляется #839c06e1-5508-4839-9a70-63b4594a144d, но элемент не находит

Т.е. вы хотите сказать что в рамках одной сессии есть элемент, который Firepath находит по xpath, но не может найти по css? Если так, то предположу, что это глюк Firepath’а, а проблема ваша связана с другим.
Во-первых, я бы посоветовал не привязываться к элементу с таким id. Уж больно рандомным он выглядит. Лучше, как уже рекомендовали, действительно поискать по какому-нибудь аттрибуту.
Во-вторых, может быть вы и во все пытаетесь перетаскивать то, что не перетаскивается. Очень сложно гадать по таким локаторам :smile:
Ну и наконец, при чём тут вообще jQuery? Чем не угодили стандартные средства selenium?

1 лайк

Додам, що найстабiльнiше, як на мене, перевiряе XPath стандартна утилiта хрома та фаерфокса. В закладцi Console вводиться команда з тим жеж XPathом. Наприклад: $x("//*[id='']")
Треба тiльки пам’ятати про замi всiх " в своему XPathi на одинарнi ’
Щодо даноï конкретноï idшки, то вона явно динамiчна. Спробуйте знайти один унiкальний атрибут елемента або або його текст.
Щодо того що css selector працюе по iншому - факт, сама колись напороласть на таку рiч.
I ще, одне якщо ви виставите один чи кiлька вузлiв вашоï htmlки в паблiк, це ще не порушення комерцiйноï таемницii. =)

потому что css в firepath не нравятся “-” дефисы, так не достучитесь до них