//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;
        }
예제 #2
0
        /// <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>();
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #6
0
        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;
        }
예제 #7
0
        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);
        }
예제 #9
0
        /// <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;
        }
예제 #10
0
        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>();
        }
예제 #11
0
 public void ZamknijPopup()
 {
     Helper.DebugLog("Kliknij ikonę zamknięcia okna");
     OpenWebsite.FindSingle <Button>(_prefix() + "/button[@automationid='CloseButton']").Click();
 }
예제 #12
0
 private Text PobierzTextBox()
 {
     Helper.DebugLog("Pobierz pole tekstowe okna dialogowego");
     return(OpenWebsite.FindSingle <Text>(_prefix() + "/container[@automationid='scrollViewer']/container/text", 30000));
 }
예제 #13
0
        protected T Znajdz <T>(string xPath, int miliseconds = 30000) where T : Adapter
        {
            string correctPath = "./" + xPath;

            return(OpenWebsite.FindSingle <T>(correctPath, new Duration(miliseconds)));
        }
예제 #14
0
        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);
        }
예제 #15
0
        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);
        }