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

Фотография

Помогите пож. с выпадающим календарем или списком

#выпадающееменю #seleniumide

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

#1 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 24 июля 2017 - 16:05

Столкнулся с такой проблемой: в форме регистрации есть календарь с выпадающим меню выбора даты рождения. Вручную прописать нельзя, только выбор. Тесты записываю Selenium IDE с помощью рекордера. 

 

В общем с помощью front-end-ера прописал путь к локатору: command: runScript, target: $('input#birthday_date_show').val("10 Октябрь, 1990") . В поле дата отображается и результат "Run", но при нажатии "Submit" - пишет заполнить данные. Перелопатил весь интернет и разные команды. Прошу помощи более опытных

 

Вот скрины календаря http://prntscr.com/fzofrw , http://prntscr.com/fzoh6b  


  • 0

#2 Snap

Snap

    Специалист

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


Отправлено 24 июля 2017 - 19:13

Трудно сказать, возможно не срабатывает какое-либо событие. Может попробовать заполнять дату честно?

Если подскажете пример, где можно посмотреть подобный календарик, попробую помочь.


  • 0

#3 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 24 июля 2017 - 19:21

Да, конечно. https://business-class.pro Нажать "Зарегистрироваться"

Спасибо


  • 0

#4 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 24 июля 2017 - 19:28

3 дня уже разбираюсь))


  • 0

#5 Snap

Snap

    Специалист

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


Отправлено 25 июля 2017 - 08:12

Предположу, что чтобы дата зафиксировалась, ее нужно устанавливать именно через календарь, причем не просто выбрать дату, а еще обязательно нажать на ссылку "Закрыть" (или кликнуть вне области календаря для его исчезновения). В общем, если устанавливать дату реально, то все работает:

<tr>
	<td>click</td>
	<td>id=birthday_date_show</td>
	<td></td>
</tr>
<tr>
	<td>waitForNotAttribute</td>
	<td>css=select[class*='picker__select--month']@disabled</td>
	<td></td>
</tr>
<tr>
	<td>select</td>
	<td>css=select[class*='picker__select--month']</td>
	<td>value=9</td>
</tr>
<tr>
	<td>select</td>
	<td>css=select[class*='picker__select--year']</td>
	<td>value=1990</td>
</tr>
<tr>
	<td>waitForVisible</td>
	<td>css=div.picker__day[aria-label='10 Октябрь, 1990']</td>
	<td></td>
</tr>
<tr>
	<td>click</td>
	<td>css=div.picker__day[aria-label='10 Октябрь, 1990']</td>
	<td></td>
</tr>
<tr>
	<td>click</td>
	<td>css=button.picker__close</td>
	<td></td>
</tr>

И довольно стабильно.


  • 1

#6 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 25 июля 2017 - 12:14

Все-равно не проходит( Календарь открывает, но не фиксирует


  • 0

#7 Snap

Snap

    Специалист

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


Отправлено 25 июля 2017 - 15:09

Странно, у меня все работает, пример на скриншоте - http://i12.pixs.ru/s...83_26982692.png

При желании могу скинуть видео.


  • 1

#8 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 25 июля 2017 - 19:10

Большое спасибо! Завтра попробую снова


  • 0

#9 Snap

Snap

    Специалист

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


Отправлено 26 июля 2017 - 11:59

Как успехи? На скриншоте я уже поменял местами и сначала стал выбирать год, а затем месяц, думаю так будет лучше. А то при первом запуске теста, иногда не выбирался месяц, хотя команда подсвечивалась зеленым. В целом же, выбор даты работает корректно, но при желании сценарий можно доработать, добавив другие ожидания и проверки.


  • 1

#10 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 26 июля 2017 - 12:21

При первом запуске кейса, не нашло локатор http://prntscr.com/g0hvyg . И немного изменил http://prntscr.com/g0hyje . И нашел баг с календарем, после фикса отрабатывать может будет лучше


  • 0

#11 Snap

Snap

    Специалист

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


Отправлено 26 июля 2017 - 14:11

При первом запуске кейса, не нашло локатор http://prntscr.com/g0hvyg . И немного изменил http://prntscr.com/g0hyje . И нашел баг с календарем, после фикса отрабатывать может будет лучше

Отлично, рад за вас. В первом скриншоте при вводе года локатор не находится, так как атрибут @disabled лишний, он нужен только в строке ожидания. Собственно в моем примере так и есть.


  • 1

#12 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 26 июля 2017 - 15:37

Snap, а есть какие-нибудь простые примеры локаторов css или xpath drop-down menu? на втором шаге регистрации drop-down и checkbox в одном поле.  


  • 0

#13 Snap

Snap

    Специалист

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


Отправлено 26 июля 2017 - 18:47

Snap, а есть какие-нибудь простые примеры локаторов css или xpath drop-down menu? на втором шаге регистрации drop-down и checkbox в одном поле.  

Если приведете код, а то неохота регистрироваться.


  • 1

#14 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 27 июля 2017 - 09:40

Это маленькое поле               http://prntscr.com/g0wbpg

<tr>

<td>click</td>
<td>css=input.select-dropdown.active</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//ul[@id='select-options-e5b1267d-0b8a-7e76-4988-ff98e0beeeec']/li[8]/span</td>
<td></td>
</tr>
 
А это drop-down menu с выбором нескольких checkbox http://prntscr.com/g0wd5g
<tr>
<td>click</td>
<td>css=input.select-dropdown.active</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=#sizzle1501147788626 &gt; span</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=#sizzle1501147788626 &gt; span</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=#sizzle1501147788626 &gt; span</td>
<td></td>
</tr>
 
Спасибо)

  • 0

#15 Snap

Snap

    Специалист

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


Отправлено 27 июля 2017 - 13:43

 

Это маленькое поле               http://prntscr.com/g0wbpg

 
А это drop-down menu с выбором нескольких checkbox http://prntscr.com/g0wd5g
 
Спасибо)

 

По простому тут вряд ли получится.

В первом случае кликаете на что-то подобное div#programm_source input, а затем на элемент списка <li>.

Во втором случае нажимаете на div#programm_expectations input , после этого на элемент списка li/span, где span ищете по вхождению текста.


  • 0

#16 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 27 июля 2017 - 14:33

Я в общем не стал заморачиваться, копировал xpath с инспектора firebug http://prntscr.com/g10be3

 

Спасибо тебе.. Очень помог


  • 0

#17 ValeraBY

ValeraBY

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

  • Members
  • Pip
  • 13 сообщений
  • ФИО:Бортулев Валера


Отправлено 27 июля 2017 - 14:46

Ну и последний вопрос))  Какую команду и как локатор определить, чтобы зашло в первое письмо на почте и нажало кнопку?


  • 0

#18 Snap

Snap

    Специалист

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


Отправлено 28 июля 2017 - 08:41

Ну и последний вопрос))  Какую команду и как локатор определить, чтобы зашло в первое письмо на почте и нажало кнопку?

Все зависит от почтового сервиса. Теоретически все как обычно, находим нужное по критериям письмо, переходим, нажимаем. Небольшие сложности могут возникнуть с дополнительным переходом во фреймы, которые часто используются в почтовиках.


  • 0


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

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