//private int paramPierwszeRuchomePole; public SilverlightTableEditorWindow(WebDocument openWebsite, int?browserId, string idOkna = "", bool ignoreHeader = false, bool detailsPresenter = false, int ktoraTabelka = 0, bool emptyWindow = false, bool znajdzWKontenerze = true) : base(openWebsite, browserId) { _znajdzWKontenerze = znajdzWKontenerze; WaitForLoadInWindow(); if (idOkna != "") { _okno = OpenWebsite.FindSingle <Form>(string.Format(".//form/form[@name='{0}' and @visible='true']", idOkna)); } if (idOkna == "") { _okno = OpenWebsite.FindSingle <Form>(string.Format(".//form/form[@visible='true']")); } if (_znajdzWKontenerze) { _container = _okno.FindSingle <Container>(".//container[@automationid='scrollViewer' and @visible='true']"); } if (!emptyWindow) { InternalTable = PobierzTabelkeDoEdycji(detailsPresenter, ignoreHeader, ktoraTabelka); } paramDetailsPresenter = detailsPresenter; paramIgnoreHeader = ignoreHeader; paramKtoraTabelka = ktoraTabelka; }
/// <summary> /// Scieżka do lewego grida /// </summary> //private string pathToSwitchPanelLeft = "/div[@id~'vswitchpanel' and id~'-targetEl']/div[@id~'vgrid' and childindex=0]"; //public string PathToSwitchPanelLeft //{ // get { return pathToSwitchPanelLeft; } // set { pathToSwitchPanelLeft = value; } //} ///// <summary> ///// Scieżka do prawego grida ///// </summary> //private string pathToSwitchPanelRight = "/div[@id~'vswitchpanel' and id~'-targetEl']/div[@id~'vgrid' and childindex=2]"; //public string PathToSwitchPanelRight //{ // get { return pathToSwitchPanelRight; } // set { pathToSwitchPanelRight = value; } //} public VSwitchPanel(WebDocument openWebsite, int?browserId, string idOkna) : base(openWebsite, browserId, idOkna) { WaitForLoad(); var _headerWidow = OpenWebsite.FindSingle <SpanTag>(string.Format(".//div[@class~'x-window']//span[@innertext='{0}' and @class~'x-window-header-text']", idOkna)); this._windowDialog = _headerWidow.Parent.Parent.Parent.Parent.Parent.Parent.As <DivTag>(); }
private void ClickByLocationDate(string name) { var el = OpenWebsite.FindSingle <Text>(string.Format(".//datetime/button[@name='{0}' and @visible='true']/text", name)); Mouse.MoveTo(el.ScreenRectangle.X, el.ScreenRectangle.Y); Mouse.Click(el.ScreenRectangle.X, el.ScreenRectangle.Y); }
private Button PobierzGuzik(ButtonTypes enumGuzik) { switch (enumGuzik) { case ButtonTypes.OK: return(OpenWebsite.FindSingle <Button>(_prefix() + "/button[@name='OK']", new Duration(30000))); case ButtonTypes.TAK: return(OpenWebsite.FindSingle <Button>(_prefix() + "/button[@name='Tak']", new Duration(30000))); } return(null); }
public bool SprawdzZawartoscTooltipow(string[][] dane) { //tablica z danymi powinna zawierać tablice 4 elementowe, po jednej dla każdego tooltipa. Elementy to kolejno: //1 - Nazwa kolumny w której mamy tooltip //2 - Spodziewana treść wewnątrz tooltipa //3 - typ tooltipa. Zamieniamy go na odpowiednią wartość child index wewnątrz komórki //4 - numer wiersza który sprawdzamy //typy to "error" i "warning" foreach (var tooltip in dane) { InfoLog(String.Format("Szukam tooltipa {0}", tooltip[0])); string wartoscOczekiwana = tooltip[1]; int ci; switch (tooltip[2]) //jest jeszcze jeden obrazek z przesunieciem 0, ale nie wiem jaki... { case "error": ci = 2; break; case "warning": ci = 1; break; default: InfoLog("Nie podano typu tooltipa do odnalezienia."); return(false); } var komorka = KomorkaWTabelce(tooltip[0], Int32.Parse(tooltip[3])).Element.Parent; Picture obrazek = komorka.FindSingle(String.Format("./picture[@ChildIndex={0} and @visible='true']", ci)); obrazek.MoveTo(); Delay.Milliseconds(600); //TUTAJ JEST ANIMACJA LADOWANIA TOOLTIPA - MUSI ZOSTAC string wartoscAktualna = OpenWebsite.FindSingle <Text>(".//tooltip[@classname='ToolTip' and @visible='true']/text[@visible='true']").TextValue; //todo losowo znajduje tooltipy w D_02_02_130 if (wartoscOczekiwana != wartoscAktualna) { InfoLog(String.Format("Wartość niezgodna, ma być: {0}, jest: {1}", wartoscOczekiwana, wartoscAktualna)); return(false); } } return(true); }
public SilverlightSimpleEditorWindow(WebDocument openWebsite, int?browserId, SimpleEditorFields[] fields, string idZakladki) : base(openWebsite, browserId) { //konstruktor dla wersji wewnątrz zakładki const int waitTime = 30000; WaitForLoad(); if (idZakladki != "") { _okno = OpenWebsite.FindSingle <Unknown>(string.Format(".//tabpagelist/tabpage[@name='{0}' and @visible='true']", idZakladki), waitTime); } if (idZakladki == "") { _okno = OpenWebsite.FindSingle <Unknown>(string.Format(".//tabpagelist/tabpage[@visible='true']"), waitTime); } _fields = fields; }
public string[][] PobierzTooltipyWRogu(int iloscbledow, string komunikatOBledach = "Błędów: ") { InfoLog("Najeżdzam na element z tooltipem"); List <string[]> result = new List <string[]>(); Text hoverObject; if (znajdzWKontenerze) { hoverObject = _okno.FindSingle <Text>(String.Format("..//text[@name='{0}']", komunikatOBledach)); _okno.FindSingle <Text>(String.Format("..//text[@name='{0}']", iloscbledow)); } else { hoverObject = _okno.FindSingle <Text>(String.Format(".//text[@name='{0}']", komunikatOBledach)); _okno.FindSingle <Text>(String.Format(".//text[@name='{0}']", iloscbledow)); } hoverObject.MoveTo(); Delay.Milliseconds(1000); //TUTAJ JEST ANIMACJA LADOWANIA TOOLTIPA - MUSI ZOSTAC InfoLog("Szukam tooltipa"); var tooltip = OpenWebsite.FindSingle <ToolTip>(string.Format(".//tooltip[@classname='ToolTip' and @visible='true']")); var automationID = (string)tooltip.Element.GetAttributeValue("AutomationId"); if (automationID == "VSToolTip") { var tooltipList = tooltip.FindDescendants <ListItem>(); foreach (var listItem in tooltipList) { var textList = listItem.FindDescendants <Text>(); string[] row = new string[textList.Count]; int i = 0; foreach (var text in textList) { row[i] = text.TextValue; i++; } result.Add(row); } } return(result.ToArray()); }
public SilverlightHybridWindow(WebDocument openWebsite, int?browserId, string idOkna, SimpleEditorFields[] fields, bool znajdzWKontenerze = true, int ktoraTabelka = 0) : base(openWebsite, browserId, idOkna, fields, znajdzWKontenerze) { WaitForLoad(); if (idOkna != "") { _okno = OpenWebsite.FindSingle <Form>(string.Format(".//form/form[@name='{0}' and @visible='true']", idOkna)); } if (idOkna == "") { _okno = OpenWebsite.FindSingle <Form>(string.Format(".//form/form[@visible='true']")); } if (znajdzWKontenerze) { _container = _okno.FindSingle <Container>(".//container[@automationid='scrollViewer']"); } _fields = fields; EditableGrid = new SilverlightTableEditorWindow(OpenWebsite, BrowserId, idOkna, false, false, ktoraTabelka, false, znajdzWKontenerze); }
/// <summary> /// /// </summary> /// <param name="openWebsite"></param> /// <param name="browserId"></param> /// <param name="idOkna"></param> /// <param name="fields"></param> /// <param name="znajdzWKontenerze"></param> /// <param name="lpWierszaDolnego"></param> public SilverlightSimpleEditorWindow(WebDocument openWebsite, int?browserId, string idOkna, SimpleEditorFields[] fields, bool znajdzWKontenerze = true) : base(openWebsite, browserId) { this.znajdzWKontenerze = znajdzWKontenerze; const int waitTime = 30000; WaitForLoad(); if (idOkna != "") { _okno = OpenWebsite.FindSingle <Unknown>(string.Format(".//form/form[@name='{0}' and @visible='true']", idOkna), waitTime); } if (idOkna == "") { _okno = OpenWebsite.FindSingle <Unknown>(string.Format(".//form/form[@visible='true']"), waitTime); } if (znajdzWKontenerze) { _okno = _okno.FindSingle <Unknown>(".//container[@classname='ScrollViewer']", waitTime); } _fields = fields; }
protected VWindowPage(WebDocument openWebsite, int?browserId, string idOkna, bool bezNaglowka = false, bool visibleOnly = false) : base(openWebsite, browserId) { WaitForLoad(); SpanTag _headerWindow; String path = String.Empty; if (!bezNaglowka) { path = string.Format(".//div[@class~'x-window']//span[@innertext='{0}' and @class~'x-window-header-text']", idOkna); } else { path = string.Format(".//div[@class~'x-window']//span[@class~'x-window-header-text']"); //w paisie, okno edycyjne bez naglowka, bez innertextu - Tadzio, 11.03 } if (visibleOnly) { path += "[@Visible='true']"; } _headerWindow = OpenWebsite.FindSingle <SpanTag>(path); _windowDialog = _headerWindow.Parent.Parent.Parent.Parent.Parent.Parent.As <DivTag>(); }
public void ZamknijPopup() { Helper.DebugLog("Kliknij ikonę zamknięcia okna"); OpenWebsite.FindSingle <Button>(_prefix() + "/button[@automationid='CloseButton']").Click(); }
private Text PobierzTextBox() { Helper.DebugLog("Pobierz pole tekstowe okna dialogowego"); return(OpenWebsite.FindSingle <Text>(_prefix() + "/container[@automationid='scrollViewer']/container/text", 30000)); }
protected T Znajdz <T>(string xPath, int miliseconds = 30000) where T : Adapter { string correctPath = "./" + xPath; return(OpenWebsite.FindSingle <T>(correctPath, new Duration(miliseconds))); }
public bool SprawdzZawartoscTooltipow(string[][] dane) { //tablica z danymi powinna zawierać tablice 3 elementowe, po jednej dla każdego tooltipa. Elementy to kolejno: //1 - Nazwa labelki przy której mamy tooltip //2 - Spodziewana treść wewnątrz tooltipa //3 - typ tooltipa. Zamieniamy go na odpowiednią wartość przesunięcia w child indexie od labelki //typy to "error" i "warning" foreach (var tooltip in dane) { InfoLog(String.Format("Szukam tooltipa {0}", tooltip[0])); string wartoscOczekiwana = tooltip[1]; var field = _fields.ToList().Find(s => s.Label == tooltip[0]); int przesuniecie; switch (tooltip[2]) //jest jeszcze jeden obrazek z przesunieciem 1, ale nie wiem jaki... { case "error": przesuniecie = 3; break; case "warning": przesuniecie = 2; break; default: InfoLog("Nie podano typu tooltipa do odnalezienia."); return(false); } Text label = ZnajdzWKontenerzeLubOknie <Text>(String.Format("./text[@name='{0}']", tooltip[0])); var ci = label.Element.ChildIndex; Picture obrazek; switch (field.Type) { case FieldTypes.TEXTBOX: { ci++; var textbox = ZnajdzWKontenerzeLubOknie <Text>(String.Format("./text[@ChildIndex={0} and @visible='true']", ci)); //uwaga na ewentualne zmiany kolejnosci elementow w textboxach w przyszlosci obrazek = textbox.FindSingle <Picture>(String.Format("./picture[@ChildIndex={0} and @visible='true']", przesuniecie - 1)); break; } case FieldTypes.VALDICT: case FieldTypes.COMBOBOX: { ci += przesuniecie; obrazek = ZnajdzWKontenerzeLubOknie <Picture>(String.Format("./picture[@ChildIndex={0} and @visible='true']", ci)); break; } default: return(false); } obrazek.MoveTo(); Delay.Milliseconds(1000); //TUTAJ JEST ANIMACJA LADOWANIA TOOLTIPA - MUSI ZOSTAC string wartoscAktualna = OpenWebsite.FindSingle <Text>(".//tooltip[@classname='ToolTip' and @visible='true']/text[@visible='true']").TextValue; if (wartoscOczekiwana != wartoscAktualna) { InfoLog(String.Format("Wartość niezgodna, ma być: {0}, jest: {1}", wartoscOczekiwana, wartoscAktualna)); return(false); } } return(true); }
public string PobierzWartoscPola(string nazwaPola) { var field = _fields.ToList().Find(s => s.Label == nazwaPola); string value = ""; switch (field.Type) { case FiledTypes.COMBOBOX: { var tdValueTag = GetTdForValue(nazwaPola); var combo = tdValueTag.FindDescendants <InputTag>(); if (combo.Count != 1) { throw new Exception("To nie jest comboBox"); } value = combo[0].Value; break; } case FiledTypes.TEXTBOX: { var tdValueTag = GetTdForValue(nazwaPola); var texBox = tdValueTag.FindDescendants <InputTag>(); if (texBox.Count != 1) { throw new Exception("To nie jest textBox"); } value = texBox[0].Value; break; } case FiledTypes.TEXTAREA: { var tdValueTag = GetTdForValue(nazwaPola); var texBox = tdValueTag.FindDescendants <TextAreaTag>(); if (texBox.Count != 1) { throw new Exception("To nie jest textBox"); } value = texBox[0].InnerText; break; } case FiledTypes.DATEPICKER: // K.O { var tdValueTag = GetTdForValue(nazwaPola); var combo = tdValueTag.FindDescendants <InputTag>(); if (combo.Count != 1) { throw new Exception("To nie jest comboBox"); } value = combo[0].Value; break; } case FiledTypes.COLORPICKER: // K.O { // kolory: niebieski=0, czerwony=1, zielony=2, czarny=3, fioletowy=4 Find <InputTag>(".//input[id~'colorpicker']").Click(); var idx = OpenWebsite.FindSingle <ATag>(".//div[id~'colorpicker' and @visible='true']//a[@class~'x-color-picker-selected']").Element.ChildIndex; value = idx.ToString(); break; } } return(value); }