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

Школа тест-менеджеров v. 2.0
онлайн, начало 16 октября
Школа для начинающих тестировщиков
онлайн, начало 17 октября
Python для начинающих
онлайн, начало 16 октября
Организация автоматизированного тестирования
онлайн, начало 18 октября
Фотография

Выбор даты из календаря средствами Selenium IDE

selenium ide selenium

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

#1 anna99

anna99

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

  • Members
  • Pip
  • 32 сообщений

Отправлено 11 Апрель 2019 - 11:15

Добрый день!

Опять я к вам за помощью.

Проанализировала даты в календаре. Есть активные для выбора даты, есть неактивные. Отличаются в коде только классом, у неактивных класс disabled.

Могу ли я средствами Selenium IDE выбрать любую дату, которой не присвоен класс disabled, соответственно она активна.

Пробовала регулярным выражением, не получается((( может не правильно шаблон прописываб(((

 

Все даты в календаре имеют id=dayи цифру дня, соответственно., т.е. id=day1, (2, 3, 4, и т.д.)

 

Может есть како-йто волшебный метод, который заставит селениум работать!))) Именно Selenium IDE!

 

Спасибо большое!

Прикрепленные файлы

  • Прикрепленный файл  1.JPG   44,71К   0 Количество загрузок:

  • 0

#2 TatyanaV

TatyanaV

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

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 11 Апрель 2019 - 13:10

css: [id*='day']:not([class='disabled'])

 

п.с.: *= - означает "содержит".


  • 0

#3 anna99

anna99

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

  • Members
  • Pip
  • 32 сообщений

Отправлено 15 Апрель 2019 - 13:46

css: [id*='day']:not([class='disabled'])

 

п.с.: *= - означает "содержит".

Добрый день! Татьяна, спасибо! Для команд verify element present данная проверка проходит отлично.
А вот команда click (а именно она используется для выбора даты из календаря) не отрабатывает. Календарь открывается и все на этом, дата, не задизейбленная (даже текущая, она тоже активна) не выбирается. Я попробовала ограничить еще и классом today, вот так 

css=#day:not([class*="disabled"]):not([class*="today"])

или

css=[id*="day"]:not([class*="disabled"]):not([class*="today"])

или

css=[id*="day"]:not([class*="disabled";"today"])

 

не уверена, что так можно делать, но попробовала совсместить два условия. Не отрабатывает тоже.

 

А вот если просто указываю условие для выбора текущей даты, все отрабатывает, текущая дата выбирается из календаря.

Команда опять же click и локатор css=#cal td.today

 

Если можно, поправьте меня, что не так?


  • 0

#4 TatyanaV

TatyanaV

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

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 16 Апрель 2019 - 06:45

А Вас слово "not" не смущает? :) 
 
[id*='day']:not([class='disabled']) = элемент, в айдишнике которого присутствует "day", и у которого НЕТ класса "disabled".

 

Соответственно, варианты, которые Вы пробовали:

css=#day:not([class*="disabled"]):not([class*="today"]) = элемент, айдишник которого = "day" (у Вас вроде бы не было таких элементов), и у которого НЕТ класса "disabled" и НЕТ класса "today".

css=[id*="day"]:not([class*="disabled"]):not([class*="today"]) = элемент, в айдишнике которого присутствует "day", и у которого НЕТ класса "disabled" и НЕТ класса "today".

 

#cal td.today = где-то ниже по DOM'у относительно элемента с id = "cal", найти элемент td, у которого ЕСТЬ класс "today".

 

Ничего удивительного, что с этими локаторами по-разному отрабатывает всё :).

 

Теоретически, [id*="day"]:not([class*="disabled"]):not([class*="today"])  должно было отработать и кликнуть по "вчера" (если по скрину с кодом смотреть). Возможно, пытается кликнуть до того, как календарь "откроется". 

verify element present смотрит лишь на наличие элемента в DOM'e. Видно его или нет, можно ли по нему кликнуть и т.д. - не проверяется.

Попробуйте дожидаться не наличия элемента (verify element present), а его кликабельности (element clickable - не знаю, как оно в IDE пишется).

 

п.с.: [id*="day"].today:not([class*="disabled"]) = элемент, айдишник которого содержит "day", и у которого ЕСТЬ класс "today" и НЕТ класса "disabled".


  • 0

#5 anna99

anna99

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

  • Members
  • Pip
  • 32 сообщений

Отправлено 16 Апрель 2019 - 14:49

А Вас слово "not" не смущает? :) 
 
[id*='day']:not([class='disabled']) = элемент, в айдишнике которого присутствует "day", и у которого НЕТ класса "disabled".

 

Соответственно, варианты, которые Вы пробовали:

css=#day:not([class*="disabled"]):not([class*="today"]) = элемент, айдишник которого = "day" (у Вас вроде бы не было таких элементов), и у которого НЕТ класса "disabled" и НЕТ класса "today".

css=[id*="day"]:not([class*="disabled"]):not([class*="today"]) = элемент, в айдишнике которого присутствует "day", и у которого НЕТ класса "disabled" и НЕТ класса "today".

 

#cal td.today = где-то ниже по DOM'у относительно элемента с id = "cal", найти элемент td, у которого ЕСТЬ класс "today".

 

Ничего удивительного, что с этими локаторами по-разному отрабатывает всё :).

 

Теоретически, [id*="day"]:not([class*="disabled"]):not([class*="today"])  должно было отработать и кликнуть по "вчера" (если по скрину с кодом смотреть). Возможно, пытается кликнуть до того, как календарь "откроется". 

verify element present смотрит лишь на наличие элемента в DOM'e. Видно его или нет, можно ли по нему кликнуть и т.д. - не проверяется.

Попробуйте дожидаться не наличия элемента (verify element present), а его кликабельности (element clickable - не знаю, как оно в IDE пишется).

 

п.с.: [id*="day"].today:not([class*="disabled"]) = элемент, айдишник которого содержит "day", и у которого ЕСТЬ класс "today" и НЕТ класса "disabled".

Таня, спасибо! Буду пробовать. А по вышеописанному, да, я not для today намеренно написала. Мне это и нужно было, чтобы выбралась активная дата, но не сегодня,например вчера или завтра. Поэтому я и написала такой локатор css= [id*="day"]:not([class*="disabled"]):not([class*="today"]) 

Просто непонятно было, почему, если today без not, то выбирает текущую, а если в условии not, то не выбирает дату, кроме текущей и дисабл.

А так, конечно я поняла, как именно отрабатывает данный локатор и для чего там not))))) Спасибо огромное!


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами selenium ide, selenium

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

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

Яндекс.Метрика
Реклама на портале