protected void SelectFromTimePicker(InputTag timepicker, string value) { WaitForLoad(); timepicker.Click(); WaitForLoad(); Keyboard.Press(Keys.Down); WaitForLoad(); Find <LiTag>(string.Format("/div[@Id~'timepicker' and @visible='true']//li[@InnerText='{0}']", value)).Click(); WaitForLoad(); }
protected void SelectFromCombo(InputTag combo, string value, Boolean onlyVisible = true) { WaitForLoad(); combo.Click(); WaitForLoad(); Keyboard.Press(Keys.Down); WaitForLoad(); //Find<LiTag>(string.Format("/div[@Id~'boundlist' and @visible='true']//li[@InnerText='{0}']", value)).Click(); Find <LiTag>(string.Format("/div[@Id~'boundlist' {1}]//li[@InnerText='{0}']", value, onlyVisible ? "and @visible='true'" : "")).Click(); WaitForLoad(); }
/// <summary> /// Funkcja aktywuje kontrolkę datepicker'a, a następnie wybiera wskazaną datę /// </summary> /// <param name="id">identyfikator pola typu input kontrolki kalendarza</param> /// <param name="date">data którą chcemy wybrać</param> protected void WybierzZDatePicera(InputTag inputTag, string date, int firstYear = 2011, int lastYear = 2020) { DebugLog("Wybieram date : " + date); // Sprawdz jakiego rodzaju kontrolka kalenarza // Jeśli pole Input (id) nie aktywuje kontrolki kalendarza // trzeba ją znaleźć if (!inputTag.Class.Contains("x-trigger-noedit")) { var trTag = inputTag.Parent.Parent; var divTag = trTag.FindSingle <DivTag>(".//td[2]/div"); divTag.Click(); } else { inputTag.Click(); } string[] months = { "Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru" }; string[] parseDate = date.Split('.'); // Odszukaj id kontrolki datepicker-* var idDatePicker = Find <DivTag>("body/div[@id~'datepicker-' and @Visible='True']").Id; // kliknij w selektor miesiąca Find <SpanTag>(string.Format("/div[#'{0}']//span[@id~'splitbutton-*' and Visible='True']", idDatePicker)).Click(); System.Threading.Thread.Sleep(1000); // K.O - żeby się nie pogubił // wybierz rok // Uwaga, na liście lat kontrolki domyślnie są lata 2011-2020 ShiftListYears(idDatePicker, parseDate[2], firstYear, lastYear); Find <ATag>(string.Format("/div[#'{0}']//div[@Id~'yearEl' and Visible='True']//a[@innertext='{1}']", idDatePicker, parseDate[2])).Click(); // wybierz miesiąc Find <ATag>(string.Format("/div[#'{0}']//a[@innertext='{1}']", idDatePicker, months[int.Parse(parseDate[1]) - 1])).Click(); // kliknij guzik OK Find <SpanTag>(string.Format("/div[#'{0}']//span[@InnerText ~'OK']", idDatePicker)).Click(); System.Threading.Thread.Sleep(2000); // K.O - żeby się nie pogubił // wybierz dzien Find <ATag>(string.Format("/div[#'{0}']//table[Id~'datepicker']//td[@class~'-active' and Visible='True']/a[@innertext='{1}']", idDatePicker, int.Parse(parseDate[0]).ToString())).Click(); WaitForLoad(); }
/// <summary> /// Funkcja aktywuje kontrolkę vtimepicker'a, a następnie wybiera wskazaną datę /// Uwaga! brak wartości parametru czas, spowoduje wybór guzika "TERAZ" /// </summary> /// <param name="id">identyfikator pola typu input kontrolki zegara</param> /// <param name="czas">data którą chcemy wybrać w formacie [hh:mm]</param> protected void WybierzZVtimepicker(InputTag inputTag, string czas = "") { DebugLog(string.Format("Wybieram wskazany czas [hh:mm] : {0}", (czas == string.Empty ? "TERAZ" : czas))); var minuty = ""; var godziny = ""; if (!string.IsNullOrEmpty(czas)) { int min = 0; int godz = 0; var godzinyMinuty = czas.Split(':'); if (int.TryParse(godzinyMinuty[0], out godz) == false || godz > 24) { DebugLog(string.Format("Podano niepoprawną wartość dla godzin: <{0}>", godzinyMinuty[0])); return; } if (int.TryParse(godzinyMinuty[1], out min) == false || min > 59) { DebugLog(string.Format("Podano niepoprawną wartość dla minut: <{0}>", godzinyMinuty[1])); return; } // Minuty modulo 5! minuty = (min > 5 ? min - (min % 5) : (min % 5)).ToString().PadLeft(2, '0'); godziny = godz.ToString().PadLeft(2, '0'); } // Sprawdz jakiego rodzaju kontrolka kalenarza // Jeśli pole Input (id) nie aktywuje kontrolki kalendarza // trzeba ją znaleźć if (!inputTag.Class.Contains("x-trigger-noedit")) { var trTag = inputTag.Parent.Parent; var divTag = trTag.FindSingle <DivTag>(".//td[2]/div"); divTag.Click(); } else { inputTag.Click(); } // Odszukaj id kontrolki vtimepicker-* var idTimePicker = Find <DivTag>("body/div[@id~'vtimepicker-' and @Visible='True']").Id; System.Threading.Thread.Sleep(1000); // K.O - żeby się nie pogubił if (!string.IsNullOrEmpty(czas)) { // wybierz godzinę Find <ATag>(string.Format("/div[#'{0}']//td[@class~'hours']/a[@innertext='{1}']", idTimePicker, godziny)).Click(); // wybierz minutę - kończy działanie kontrolki Find <ATag>(string.Format("/div[#'{0}']//td[@class~'minutes']/a[@innertext='{1}']", idTimePicker, minuty)).Click(); // kliknij guzik OK //Find<SpanTag>(string.Format("/div[#'{0}']//span[@InnerText ~'OK']", idTimePicker)).Click(); } else { // kliknij guzik TERAZ Find <SpanTag>(string.Format("/div[#'{0}']//span[@InnerText ~'TERAZ']", idTimePicker)).Click(); } System.Threading.Thread.Sleep(2000); // K.O - żeby się nie pogubił WaitForLoad(); }