Како одабрати датум из ДатеПицкер-а / календара у програму Селениум Вебдривер

Anonim

За избор датума, ХТМЛ5 има нову контролу приказану испод.

Овде се може приступити горњој страници

Ако видимо ДОМ контроле ДатеТиме Пицкер, постојаће само једно поље за унос и за датум и за време.

Дакле, да бисмо прво обрадили ову врсту контроле, датум ћемо попунити без одвајања граничником, тј. Ако је датум 25.09.2013, проследићемо 09252013 у поље за унос. Када завршите, фокус ћемо пребацити са датума на време притиском на 'таб' и време попуњавања.

Ако треба да попунимо 14:45, проследићемо је '0245ПМ' у исто поље за унос.

Код за датапицкер изгледа овако -

импорт јава.утил.Лист;импорт јава.утил.цонцуррент.ТимеУнит;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.Кеис;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;импорт орг.тестнг.аннотатионс.Тест;јавна класа ДатеТимеПицкер {@Тестјавна воид датеТимеПицкер () {Систем.сетПроперти ("вебдривер.цхроме.дривер", "цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.манаге (). тимеоутс (). имплицитноВаит (10, ТимеУнит.СЕЦОНДС);дривер.гет ("хттп://демо.гуру99.цом/тест/");// Пронађите контролу за одабир датума и временаВебЕлемент датеБок = дривер.финдЕлемент (Би.кпатх ("// образац // унос [@ наме = 'бдаитиме']"));// Датум попуњавања у мм / дд / ииии као 25.09.2013датеБок.сендКеис ("09252013");// Притисните језичак да бисте фокус пребацили на временско пољедатеБок.сендКеис (Кеис.ТАБ);// Време попуњавања је у 14:45датеБок.сендКеис ("0245 ПМ");}}

Излаз ће бити попут-

Погледајмо још један пример календара. Користићемо контролу Телерик ДатеТимеПицкер. Овде се може приступити

Овде ако треба да променимо месец, морамо да кликнемо на средину заглавља календара.

Слично томе, ако треба да променимо годину, то можемо учинити кликом на следећу или претходну везу на бирачу датума.

И на крају за промену времена из падајућег менија можемо одабрати тачно време (Напомена: Овде се време бира у размаку од 30 минута, тј. 12:00, 12:30, 1:00, 1:30 итд.).

Комплетан пример изгледа-

импорт јава.утил.Цалендар;импорт јава.утил.Лист;импорт јава.утил.цонцуррент.ТимеУнит;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.фирефок.ФирефокДривер;импорт орг.тестнг.аннотатионс.Тест;јавна класа ДатеПицкер {@Тестпублиц воид тестДАтеПицкер () баца изузетак {// Датум и време који се постављају у оквир за текстСтринг датеТиме = "07.12.2014. 14:00";Управљачки програм за ВебДривер = нови ФирефокДривер ();дривер.манаге (). виндов (). макимизе ();дривер.гет ("хттпс://демос.телерик.цом/кендо-уи/датетимепицкер/индек");дривер.манаге (). тимеоутс (). имплицитноВаит (10, ТимеУнит.СЕЦОНДС);// дугме за отварање календараВебЕлемент селецтДате = дривер.финдЕлемент (Би.кпатх ("// распон [@ ариа-цонтрол = 'датетимепицкер_датевиев']"));селецтДате.цлицк ();// дугме за померање следећег у календаруВебЕлемент нектЛинк = дривер.финдЕлемент (Би.кпатх ("// див [@ ид = 'датетимепицкер_датевиев'] // див [@ цласс = 'к-хеадер'] // а [садржи (@ класу, 'к-нав- следећи')]"));// дугме за клик у средини заглавља календараВебЕлемент мидЛинк = дривер.финдЕлемент (Би.кпатх ("// див [@ ид = 'датетимепицкер_датевиев'] // див [@ цласс = 'к-хеадер'] // а [садржи (@ класу, 'к-нав- брзо ')] "));// дугме за померање претходног месеца у календаруВебЕлемент превиоусЛинк = дривер.финдЕлемент (Би.кпатх ("// див [@ ид = 'датетимепицкер_датевиев'] // див [@ цласс = 'к-хеадер'] // а [садржи (@ класу, 'к-нав- прев ')] "));// Подијелите вријеме да бисте добили само дио датумаНиз дате_дд_ММ_ииии [] = (датеТиме.сплит ("") [0]). Сплит ("/");// добијемо годишњу разлику између текуће године и године за подешавање у каландеруинт иеарДифф = Интегер.парсеИнт (дате_дд_ММ_ииии [2]) - Цалендар.гетИнстанце (). гет (Цалендар.ИЕАР);мидЛинк.цлицк ();иф (иеарДифф! = 0) {// ако треба да се преселите следеће годинеиф (иеарДифф> 0) {за (инт и = 0; и <иеарДифф; и ++) {Систем.оут.принтлн ("Разлика у години ->" + и);нектЛинк.цлицк ();}}// ако морате да се преселите претходне годинеиначе ако (иеарДифф <0) {за (инт и = 0; и <(иеарДифф * (- 1)); и ++) {Систем.оут.принтлн ("Разлика у години ->" + и);превиоусЛинк.цлицк ();}}}Тхреад.слееп (1000);// Преузми све месеце из календара да би изабрао тачанЛиста <ВебЕлемент> лист_АллМонтхТоБоок = дривер.финдЕлементс (Би.кпатх ("// див [@ ид = 'датетимепицкер_датевиев'] // табела // тбоди // тд [нот (цонтаинс (@ цласс, 'к-отхер-монтх') ))] "));лист_АллМонтхТоБоок.гет (Интегер.парсеИнт (дате_дд_ММ_ииии [1]) - 1) .цлицк ();Тхреад.слееп (1000);// преузмемо све датуме из календара да бисмо изабрали тачанЛиста <ВебЕлемент> лист_АллДатеТоБоок = дривер.финдЕлементс (Би.кпатх ("// див [@ ид = 'датетимепицкер_датевиев'] // табела // тбоди // тд [нот (цонтаинс (@ цласс, 'к-отхер-монтх') ))] "));лист_АллДатеТоБоок.гет (Интегер.парсеИнт (дате_дд_ММ_ииии [0]) - 1) .цлицк ();///ЗА ВРЕМЕВебЕлемент селецтТиме = дривер.финдЕлемент (Би.кпатх ("// распон [@ ариа-цонтрол = 'датетимепицкер_тимевиев']"));// кликнемо на дугме за одабир временаселецтТиме.цлицк ();// добити списак временаЛиста <ВебЕлемент> аллТиме = дривер.финдЕлементс (Би.кпатх ("// див [@ дата-роле = 'попуп']] [садржи (@ стил, 'приказ: блок')] // ул // ли ​​[@роле = 'опција'] "));датеТиме = датеТиме.сплит ("") [1] + "" + датеТиме.сплит ("") [2];// одаберемо тачно времеза (ВебЕлемент вебЕлемент: аллТиме) {иф (вебЕлемент.гетТект (). екуалсИгнореЦасе (датеТиме)){вебЕлемент.цлицк ();}}}}

Излаз ће бити као