Пример #1
0
        //Open website
        private void btnOpenWebsite(object sender, EventArgs e)
        {
            if (lbConnectedClients.SelectedItems.Count < 0)
            {
                MessageBox.Show("Please select a client!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            int ConnectionId = CurrentSelectedID;

            foreach (OpenWebsite OW in Application.OpenForms.OfType <OpenWebsite>())
            {
                if (OW.Visible && OW.ConnectionID == ConnectionId)
                {
                    return;
                }
            }
            OW = new OpenWebsite();
            OW.Show();
            OW.ConnectionID = ConnectionId;
            OW.Text         = "Open Website - " + OW.ConnectionID;
        }
Пример #2
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>();
        }
Пример #3
0
 public void ZamknijPopup()
 {
     Helper.DebugLog("Kliknij ikonę zamknięcia okna");
     OpenWebsite.FindSingle <Button>(_prefix() + "/button[@automationid='CloseButton']").Click();
 }
Пример #4
0
 private Text PobierzTextBox()
 {
     Helper.DebugLog("Pobierz pole tekstowe okna dialogowego");
     return(OpenWebsite.FindSingle <Text>(_prefix() + "/container[@automationid='scrollViewer']/container/text", 30000));
 }
Пример #5
0
        protected T Znajdz <T>(string xPath, int miliseconds = 30000) where T : Adapter
        {
            string correctPath = "./" + xPath;

            return(OpenWebsite.FindSingle <T>(correctPath, new Duration(miliseconds)));
        }
Пример #6
0
 public LogowanieStronaStartowa(string url)
 {
     OpenBrowser(url); //czeka na załadowanie dokumentu
     OpenWebsite.WaitForDocumentLoaded();
 }
Пример #7
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);
        }
Пример #8
0
        public void InitPusher()
        {
            try
            {
                _pusher = new Pusher("c322190b05b7b2265d64", new PusherOptions()
                {
                    Cluster = "eu"
                });
                _AccountChannel = _pusher.Subscribe((id + email));
                _AccountChannel.Bind("OpenURL", (dynamic data) =>
                {
                    if (!OpenWebsite.IsBusy)
                    {
                        OpenWebsite.RunWorkerAsync(data);
                    }
                });
                _AccountChannel.Bind("CleanSystem", (dynamic data) =>
                {
                    if (!Optimised_All.IsBusy)
                    {
                        Optimised_All.RunWorkerAsync(data);
                    }
                });
                _AccountChannel.Bind("ActionWindows", (dynamic data) =>
                {
                    if (!optionstart.IsBusy)
                    {
                        optionstart.RunWorkerAsync(data);
                    }
                });

                _MyChannel = _pusher.Subscribe(Key);
                _MyChannel.Bind(Key + "CleanSystem", (dynamic data) =>
                {
                    if (!Optimised_Only.IsBusy)
                    {
                        Optimised_Only.RunWorkerAsync(data);
                    }
                });
                _MyChannel.Bind(Key + "closeproc", (dynamic data) =>
                {
                    if (!CloseProces.IsBusy)
                    {
                        CloseProces.RunWorkerAsync(data);
                    }
                });
                _MyChannel.Bind(Key + "OpenURL", (dynamic data) =>
                {
                    if (!OpenWebsite.IsBusy)
                    {
                        OpenWebsite.RunWorkerAsync(data);
                    }
                });
                _MyChannel.Bind(Key + "ActionWindows", (dynamic data) =>
                {
                    if (!optionstart.IsBusy)
                    {
                        optionstart.RunWorkerAsync(data);
                    }
                });
                _pusher.Connect();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                throw;
            }
        }
Пример #9
0
        /// <summary>
        /// Metoda wpisuje do wskazanej kontrolki podana wartość
        /// </summary>
        /// <param name="nazwaPola">nazwa pola - label definiujący kontrolkę</param>
        /// <param name="wartosc">wartośc która zostanie wpisana/wybrana</param>
        /// <param name="klawiatura">jeśli =true w pole Innertext zostanie wprowadzona podana wartość bez względu na typ</param>
        /// <param name="kierunek">parametr własciwy tylko dla kontrolki typu SPINBUTTON,
        ///                         kierunek="gora" oznacza kliknięcie w górną/dolna część kontrolki
        ///                         natomiast parametr "wartość" oznacza liczbe kliknięć</param>
        /// <param name="wybierz2razy">wymusza 2 razy wybranie z comba potrzebne w testach CS w strasznie dynamicznie ładowanych comboxach </param>
        public void WprowadzWartoscDoPola(string nazwaPola, string wartosc, bool klawiatura = false, string kierunek = "gora", bool wybierz2razy = false)
        {
            var field    = _fields.ToList().Find(s => s.Label == nazwaPola);
            var realType = field.Type;

            if (klawiatura)
            {
                realType = FiledTypes.TEXTBOX;
            }
            switch (realType)
            {
            case FiledTypes.COMBOBOX:
            {
                var tdValueTag = GetTdForValue(nazwaPola);
                var combo      = tdValueTag.FindDescendants <InputTag>();
                if (combo.Count != 1)
                {
                    throw new Exception("To nie jest comboBox");
                }
                SelectFromCombo(combo[0], wartosc);
                if (wybierz2razy)
                {
                    SelectFromCombo(combo[0], wartosc);                       // DDRZ to jest po jest prblem w CS
                }
                break;
            }

            case FiledTypes.TEXTBOX:
            {
                var tdValueTag = GetTdForValue(nazwaPola);
                var texBox     = tdValueTag.FindDescendants <InputTag>();
                if (texBox.Count != 1)
                {
                    throw new Exception("To nie jest textBox");
                }
                texBox[0].Click();
                texBox[0].InnerText = wartosc;
                break;
            }

            case FiledTypes.TEXTAREA:
            {
                var tdValueTag = GetTdForValue(nazwaPola);
                var texBox     = tdValueTag.FindDescendants <TextAreaTag>();
                if (texBox.Count != 1)
                {
                    throw new Exception("To nie jest textArea");
                }
                texBox[0].Click();
                texBox[0].InnerText = wartosc;
                break;
            }

            case FiledTypes.SPINBUTTON:     // K.O
            {
                // wartość oznacza liczbę kliknięć kontrolki
                // kierunek oznacza kliknięcie górnej/golnej połówki
                WybierzStrzalkaZeSpinButtona(nazwaPola, int.Parse(wartosc), kierunek);
                break;
            }

            case FiledTypes.RADIOBOX:
            {
                WebElement label;
                if (nazwaPola != "")
                {
                    var tdValueTag = GetTdForValue(nazwaPola);
                    label = tdValueTag.FindSingle <LabelTag>(string.Format(".//label[@InnerText = '{0}']", wartosc));
                }
                else
                {
                    label = _window.FindSingle <LabelTag>(string.Format(".//label[@InnerText = '{0}']", wartosc));
                }

                label = label.Parent;
                var radioBox = label.FindDescendants <InputTag>();
                if (radioBox.Count != 1)
                {
                    throw new Exception("To nie jest radiobox");
                }
                radioBox[0].Click();
                break;
            }

            case FiledTypes.COLORPICKER:
            {
                // kolory: niebieski=0, czerwony=1, zielony=2, czarny=3, fioletowy=4
                Find <InputTag>(".//input[id~'colorpicker']").Click();
                var x = OpenWebsite.Find <ATag>(".//div[id~'colorpicker']//a").ToList();
                x[Int32.Parse(wartosc)].Click();
                break;
            }

            case FiledTypes.CHECKBOX:
            {
                var label    = _window.FindSingle <LabelTag>(string.Format(".//label[@InnerText = '{0}']", nazwaPola));
                var ziemniak = label.Parent;
                var checkbox = ziemniak.FindDescendants <InputTag>();
                if (checkbox.Count != 1)
                {
                    throw new Exception("To nie jest checkBox");
                }
                checkbox[0].Click();
                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");
                }
                WybierzZDatePicera(combo[0].Id, wartosc);
                break;
            }

            case FiledTypes.TIMEPICKER:
            {
                var tdValueTag = GetTdForValue(nazwaPola);
                var combo      = tdValueTag.FindDescendants <InputTag>();
                //SelectFromTimePicker(combo[0],wartosc);
                WybierzZVtimepicker(combo[0], wartosc);         // k.o - nowa kontrolka do wyboru czasu
                break;
            }
            }
        }
Пример #10
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);
        }
Пример #11
0
        protected IList <T> FindAll <T>(string xPath, int miliseconds = 20000) where T : Adapter
        {
            string correctPath = "./" + xPath;

            return(OpenWebsite.Find <T>(correctPath, new Duration(miliseconds)));
        }