Перейти к содержимому

Фотография

Не получается составить работающий css

css

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Inna25

Inna25

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Орлова Инна

Отправлено 21 января 2020 - 10:03

Подскажите пожалуйста в чём моя ошибка. Пытаюсь заменить xpath на css.
 

@FindBy(xpath = "//div[@class='AddressContainBut DeliveryContinueButton']//input[@type='submit']")
@FindBy(css = "div.AddressContainBut.DeliveryContinueButton input[type='submit']")
 
По xpath элемент находится, по css - нет...

  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 22 января 2020 - 08:52

Оба локаторы правильные и одинаковые. Вы можете самостоятельно это проверить, например, через поиск элемента в браузере (инструменты разработчика).


  • 0

#3 Inna25

Inna25

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Орлова Инна

Отправлено 22 января 2020 - 09:23

Оба локаторы правильные и одинаковые. Вы можете самостоятельно это проверить, например, через поиск элемента в браузере (инструменты разработчика).

Да, я вчера уже разобралась. Вот именно так, вставила в поиск и проверила.
И оказалось, что xpath находит 1 такое место в коде, а css - 2. И сss берёт не то, что мне надо.
Я нашла ещё один отличающий параметр и добавила его в css. Работает теперь правильно.

Но всё равно осталось не понятным, почему для xpath был только 1 результат?.. 
Я не так давно занимаюсь написанием xpath-ов, но на сколько я знаю он ищет все попадающие под параметры результаты.
А тут их было 2, но xpath указывал только 1, который ниже по коду страницы...


  • 0

#4 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 22 января 2020 - 09:39

 

Оба локаторы правильные и одинаковые. Вы можете самостоятельно это проверить, например, через поиск элемента в браузере (инструменты разработчика).

Да, я вчера уже разобралась. Вот именно так, вставила в поиск и проверила.
И оказалось, что xpath находит 1 такое место в коде, а css - 2. И сss берёт не то, что мне надо.
Я нашла ещё один отличающий параметр и добавила его в css. Работает теперь правильно.

Но всё равно осталось не понятным, почему для xpath был только 1 результат?.. 
Я не так давно занимаюсь написанием xpath-ов, но на сколько я знаю он ищет все попадающие под параметры результаты.
А тут их было 2, но xpath указывал только 1, который ниже по коду страницы...

 

Не видя код страницы трудно сказать. Но как минимум //div[@class='AddressContainBut DeliveryContinueButton' будет искать точное совпадение, класс должен быть равен одновременно только двум значениями, а css = div.AddressContainBut.DeliveryContinueButton ищет скорее как вхождение классов. То есть если будет 3 класса, то xpath уже ничего не найден, а css найдет.


  • 1

#5 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 22 января 2020 - 12:33

В первом случае @class="..." - четкое совпадение. Во втором - может быть больше классов в атрибуте, или другой порядок классов.


  • 1

#6 Inna25

Inna25

    Новый участник

  • Members
  • Pip
  • 5 сообщений
  • ФИО:Орлова Инна

Отправлено 22 января 2020 - 13:57

Да, точно! В случае css находит второй вариант, где присутствует ещё 3-ий класс.
Большое спасибо!


  • 0



Темы с аналогичным тегами css

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных