示例#1
0
        public void UploadSuccessful()
        {
            string url = "http://testpan.chinacloudapp.cn/";
            string userName = "******";
            string Password = "******";
            var driver = Helper.DMLogin(url, userName, Password);
            driver.FindElement(By.CssSelector("a.menuBtn_upload > span.icontxt")).Click();
            driver.FindElement(By.CssSelector("a.a-pw_add > span.icontxt")).Click();

            //使用autoit操作windows窗口
            Helper.AutoitHelper(@"D:\temp\test.xls");
            Thread.Sleep(2000);
            driver.FindElement(By.Id("upload-done")).Click();
            Thread.Sleep(2000);

            //找到上传的文件,删除,测试通过
            var ExistTableElement =
                driver.FindElement(
                    By.CssSelector("table[data-name='test.xls']"));

            var mouseOverAction = new OpenQA.Selenium.Interactions.Actions(driver);
            mouseOverAction.MoveToElement(ExistTableElement);
            mouseOverAction.Perform();
            ExistTableElement.FindElement(By.CssSelector("div.menuBtn > a.delete")).Click();
            driver.FindElement(By.XPath("//*[@id='window_delete']/div/div[3]/table/tbody/tr/td[1]/a")).Click();

            driver.Quit();
        }
示例#2
0
 public void Hover(Element element)
 {
     var sequenceBuilder = new OpenQA.Selenium.Interactions.Actions(selenium);
     var actionSequenceBuilder = sequenceBuilder.MoveToElement((IWebElement) element.Native);
     var action = actionSequenceBuilder.Build();
     action.Perform();
 }
示例#3
0
        public bool rightclick(By by, string locatorName)
        {
            bool flag = false;

            try
            {
                WebElement elementToRightClick = driver.FindElement(by);
                Actions    clicker             = new Actions(driver);
                clicker.ContextClick(elementToRightClick).Perform();
                flag = true;
                return(flag);
                // driver.findElement(by1).sendKeys(Keys.DOWN);
            }
            catch (Exception)
            {
                return(flag);
            }
        }
示例#4
0
        public void verify_Error_message_Page_ApplyMakeCode()
        {
            int i = 0;

            OpenQA.Selenium.Interactions.Actions actions = new OpenQA.Selenium.Interactions.Actions(BrowserFactory.Driver);
            actions.MoveToElement(EleErrorCount).Build().Perform();
            string[] ArrErrorsmg = new string[4];

            foreach (var msg in TxtErrorMsg)
            {
                ArrErrorsmg[i] = msg.GetText();
                i++;
            }
            Assert.AreEqual(true, ArrErrorsmg[0] == "Red = Mandatory Field : Data Missing", "Error Message verified successfully");
            Assert.AreEqual(true, ArrErrorsmg[1] == "Green = Mandatory Field : Data Associated", "Error Message verified successfully");
            Assert.AreEqual(true, ArrErrorsmg[2] == "Blue = Optional Field: Data Associated", "Error Message verified successfully");
            Assert.AreEqual(true, ArrErrorsmg[3] == "Yellow = Optional Field: Data Missing", "Error Message verified successfully");
        }
示例#5
0
        private void AddImage()
        {
            driver.Url = "https://pinterest.com/settings";
            driver.FindElementById("userLastName").SendKeys(Keys.Space);
            var buttons = driver.FindElementsByTagName("button");

            foreach (var item in buttons)
            {
                var xt = item.Text;
                if (item.Text.Contains("Change picture"))
                {
                    try
                    {
                        driver.FindElementById("userLastName").SendKeys(Keys.Backspace);
                        OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver);
                        action.MoveToElement(item);
                        item.Click();
                        Thread.Sleep(new TimeSpan(0, 0, 5));

                        IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
                        string count           = (string)js.ExecuteScript("document.querySelector('input[type=file]').setAttribute('style', 'display:block');");

                        var image = driver.FindElementByCssSelector("input[type=file]");
                        if (image != null && image.Enabled && image.Displayed)
                        {
                            var x = new ImageRepository();
                            x.LoadImages();
                            string imgPath = x.Random();
                            image.SendKeys(imgPath);
                            Thread.Sleep(new TimeSpan(0, 0, 15));
                            SaveSettings();
                            Thread.Sleep(new TimeSpan(0, 0, 5));
                            x.Delete(imgPath);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("exception on imnage iploade", ex.Message);
                    }
                    //item.Click();
                }
            }
        }
示例#6
0
        /// <summary>
        /// Method performing a mouse click action on an IWebElement element and wait page with specific title.
        /// </summary>
        /// <param name="driver">IWebDriver provided.</param>
        /// <param name="element">IWebElement element that receives the click action.</param>
        /// <param name="title">The new page title expected after click action.</param>
        /// <param name="timespan">The maximum time to wait for the page title.</param>
        public static void ClickAndWait(this IWebDriver driver, IWebElement element, string title, int timespan = 5)
        {
            try
            {
                var action = new OpenQA.Selenium.Interactions.Actions(driver);
                var wait   = new WebDriverWait(driver, TimeSpan.FromSeconds(timespan));

                action.MoveToElement(element);
                action.MoveToElement(element).Click();
                action.Build().Perform();

                wait.Until(d => d.Title.Equals(title, StringComparison.CurrentCultureIgnoreCase));
            }
            catch (Exception e)
            {
                throw new InternalActionException(string.Format("Unable to click on object \"{0}\" or wait for new title \"{1}\".\r\nSee:\r\n\t- {2}{3}", element, title,
                                                                e.Message, (e.InnerException == null ? "" : string.Format("\r\n\t- {0}", e.InnerException.Message))), e);
            }
        }
示例#7
0
        /// <summary>
        /// Method performing a drag and drop of a given element onto another element (preferably a container).
        /// </summary>
        /// <param name="dragElement">Element to drag onto the drop element.</param>
        /// <param name="dropElement">The drop element (a container).</param>
        public static void DragAndDrop(this IWebElement dragElement, IWebElement dropElement)
        {
            try
            {
                var wrappedElement = dragElement as IWrapsDriver;
                var driver         = wrappedElement.WrappedDriver;
                var action         = new OpenQA.Selenium.Interactions.Actions(driver);

                action.MoveToElement(dragElement).Build().Perform();
                action.MoveToElement(dragElement).ClickAndHold();
                action.MoveToElement(dropElement).Release(dropElement);
                action.Build().Perform();
            }
            catch (Exception e)
            {
                throw new InternalActionException(string.Format("Unable to drag object \"{0}\" onto drop area with object \"{1}\".\r\nSee:\r\n\t- {2}{3}", dragElement, dropElement,
                                                                e.Message, (e.InnerException == null ? "" : string.Format("\r\n\t- {0}", e.InnerException.Message))), e);
            }
        }
示例#8
0
        public static void SelectFieldValue(By locator, string value)
        {
            IWebElement ele = UIReadHelper.GetVisibleElement(locator);

            if (ele != null)
            {
                ele.Click();
                Thread.Sleep(2000);
                OpenQA.Selenium.Interactions.Actions curAction = new OpenQA.Selenium.Interactions.Actions(UIReadHelper.driver);
                IWebElement optionEle = driver.FindElement(By.XPath("//option[text()='" + value + "']"));
                curAction.MoveToElement(optionEle);
                //curAction.Click(optionEle).Build().Perform();
                UIReadHelper.GetVisibleElement(By.XPath("//option[text()='" + value + "']")).Click();
            }
            else
            {
                Reporter.LogFailMassage("Unable to find element " + locator);
            }
        }
        /// <summary>
        /// Method performing a multi-click selection given two IWebElement objects. Use on a list of objects, it should also select all elements found within the given objects.
        /// </summary>
        /// <param name="driver">IWebDriver object to execute method.</param>
        /// <param name="firstElement">First IWebElement object onto which first click is performed.</param>
        /// <param name="secondElement">Second IWebElement object onto which second click is performed.</param>
        public static void ShiftClick(this IWebDriver driver, IWebElement firstElement, IWebElement secondElement)
        {
            try
            {
                var action = new OpenQA.Selenium.Interactions.Actions(driver);

                action.MoveToElement(firstElement);
                action.MoveToElement(firstElement).Click();

                action.KeyDown(Keys.Shift);

                action.MoveToElement(secondElement);
                action.MoveToElement(secondElement).Click();

                action.KeyUp(Keys.Shift);
                action.Build().Perform();
            }
            catch { }
        }
示例#10
0
        public void Execute(DriverManager driver, TestStep step)
        {
            JObject             jsonValue;
            JObject             def;
            long                order       = step.Order;
            string              wait        = step.Wait != null ? step.Wait : "";
            List <TestStep>     steps       = new List <TestStep>();
            string              leaderboard = "";
            IWebElement         ele;
            VerifyError         err = new VerifyError();
            IJavaScriptExecutor js  = (IJavaScriptExecutor)driver.GetDriver();

            OpenQA.Selenium.Interactions.Actions actions = new OpenQA.Selenium.Interactions.Actions(driver.GetDriver());

            string fileLocation = "https://api.foxsports.com/bifrost/v1/nascar/scoreboard/segment/2021" + step.Data + "?groupId=2&apikey=jE7yBJVRNAwdDesMgTzTXUUSx1It41Fq";
            var    jsonFile     = new WebClient().DownloadString(fileLocation);
            var    json         = JObject.Parse(jsonFile);

            jsonValue = json;
            DataManager.CaptureMap["IND_EVENTID"] = json["currentSectionId"].ToString();
            log.Info("Current Section ID from Bifrost: " + DataManager.CaptureMap["IND_EVENTID"]);

            foreach (JToken race in jsonValue["sectionList"])
            {
                if (DataManager.CaptureMap["IND_EVENTID"] == race["id"].ToString())
                {
                    def = (JObject)(race.SelectToken("events") as JArray).First;
                    DataManager.CaptureMap["IND_EVENT"]   = def.Value <string>("title");
                    DataManager.CaptureMap["IND_TRACK"]   = def.Value <string>("subtitle");
                    DataManager.CaptureMap["IND_LOC"]     = def.Value <string>("subtitle2");
                    DataManager.CaptureMap["IND_TIME"]    = def.Value <string>("eventTime");
                    DataManager.CaptureMap["IND_CHANNEL"] = def.Value <string>("tvStation");

                    if (def.ContainsKey("leaderboard"))
                    {
                        //(string) = def.Value<string>("$..leaderboard.title");
                        leaderboard = def.SelectToken("$..leaderboard.title").ToString();
                        log.Info(leaderboard);
                    }
                }
            }
        }
示例#11
0
        /// <summary>
        /// Method is performing a mouse hover on a given IWebElement object, it then waits for specific length of time for a new IWebElement object to be visible given its path.
        /// </summary>
        /// <param name="driver">IWebDriver object provided.</param>
        /// <param name="element">IWebElement element that receives the click action.</param>
        /// <param name="path">Path of element that needs to be visible after the mouse hover action.</param>
        /// <param name="timespan">The maximum time to wait for the element to be visible.</param>
        public static void HoverAndWait(this IWebDriver driver, IWebElement element, By path, int timespan = 5)
        {
            try
            {
                var action = new OpenQA.Selenium.Interactions.Actions(driver);
                var wait   = new WebDriverWait(driver, TimeSpan.FromSeconds(timespan));

                action.MoveToElement(element);
                action.MoveByOffset(1, 1);
                action.Build().Perform();

                wait.Until(ExpectedConditions.ElementExists(path));
                wait.Until(ExpectedConditions.ElementIsVisible(path));
            }
            catch (Exception e)
            {
                throw new InternalActionException(string.Format("Unable to perform a mouse hover on object \"{0}\" or wait for new object to be visible \"{1}\".\r\nSee:\r\n\t- {2}{3}", element, path,
                                                                e.Message, (e.InnerException == null ? "" : string.Format("\r\n\t- {0}", e.InnerException.Message))), e);
            }
        }
示例#12
0
        public void Intialize()
        {
            TestReport.StartTest(TestContext.CurrentContext.Test.Name);

            var option = new InternetExplorerOptions()
            {
                IntroduceInstabilityByIgnoringProtectedModeSettings = true
            };

            // Instanciate a classic Selenium's WebDriver
            switch (Properties.Settings.Default.Browser)
            {
            case BrowserType.Chrome:
                driver = new ChromeDriver();
                break;

            case BrowserType.FireFox:
                driver = new FirefoxDriver();
                break;

            case BrowserType.InternetExplorer:
                driver = new InternetExplorerDriver(option);
                break;

            case BrowserType.PhantomJS:
                driver = new RemoteWebDriver(DesiredCapabilities.Firefox());
                break;

            default:
                throw new Exception("Browser type invalid");
            }
            driver.Navigate().GoToUrl(TestEnvironment.GetEnvironment().Url); //navigates to test url
            driver.Manage().Window.Maximize();                               //maximises browser window
            // Configure timeouts (important since Protractor uses asynchronous client side scripts)
            driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(10));
            wait     = new WebDriverWait(driver, TimeSpan.FromSeconds(wait_seconds));
            NgDriver = new NgWebDriver(driver);
            actions  = new OpenQA.Selenium.Interactions.Actions(driver);
            //TestManager.driver = driver;
        }
示例#13
0
        public override void Run(RemoteWebDriver driver, string browser, CredentialManager credentialManager, ResponsivenessTimer timer)
        {
            // Start local web server
            Task <string> webSrvTask = WebSrv.StartWebSrv(DefaultDuration, GetWebRootPath());

            // Nagivate to static resource
            var staticUrl = GetStaticResourceUrl();

            driver.NavigateToUrl(staticUrl);

            var emptyA = driver.FindElementById("anchor-empty");
            var a1     = driver.FindElementById("anchor1");
            var a2     = driver.FindElementById("anchor2");

            for (int i = 0; i <= 10; i++)
            {
                var emptyActions1 = new OpenQA.Selenium.Interactions.Actions(driver);
                emptyActions1.MoveToElement(emptyA).Build().Perform();
                driver.Wait(2);

                var a1Actions = new OpenQA.Selenium.Interactions.Actions(driver);
                a1Actions.MoveToElement(a1).Build().Perform();
                driver.Wait(3);

                var emptyActions2 = new OpenQA.Selenium.Interactions.Actions(driver);
                emptyActions2.MoveToElement(emptyA).Build().Perform();
                driver.Wait(2);

                var a2Actions = new OpenQA.Selenium.Interactions.Actions(driver);
                a2Actions.MoveToElement(a2).Build().Perform();
                driver.Wait(3);
            }

            var emptyActionsEnd = new OpenQA.Selenium.Interactions.Actions(driver);

            emptyActionsEnd.MoveToElement(emptyA).Build().Perform();

            WebSrv.StopWebSrv(Name);
        }
        /// <summary>
        /// Method performing a control click on multiple IWebElement objects.
        /// </summary>
        /// <param name="firstElement">First IWebElement object onto which first click is performed.</param>
        /// <param name="elements">The set of elements to perform the clicks.</param>
        public static void ControlClick(this IWebElement firstElement, params IWebElement[] elements)
        {
            try
            {
                var wrappedElement = firstElement as IWrapsDriver;
                var driver         = wrappedElement.WrappedDriver;
                var action         = new OpenQA.Selenium.Interactions.Actions(driver);

                action.MoveToElement(firstElement);
                action.MoveToElement(firstElement).Click();

                action.KeyDown(Keys.Control);
                foreach (IWebElement element in elements)
                {
                    action.MoveToElement(element);
                    action.MoveToElement(element).Click();
                }
                action.KeyUp(Keys.Control);
                action.Build().Perform();
            }
            catch { }
        }
示例#15
0
        public void GetTeamRedcardData()
        {
            var clubstat = driver.FindElement(By.XPath("/html/body/div[1]/section/myapp/section/div/div/div/div/section/component/div[2]/div/div/div/div/div[2]/div[1]/div[1]/div/div/div[1]"));
            var action1  = new OpenQA.Selenium.Interactions.Actions(driver);

            ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
            action1.MoveToElement(clubstat);
            action1.Perform();
            clubstat = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                       .Until(driver => driver.FindElement(By.XPath("/html/body/div[1]/section/myapp/section/div/div/div/div/section/component/div[2]/div/div/div/div/div[2]/div[1]/div[1]/div/div/div[1]")));
            Thread.Sleep(1000);

            string actualvalue = driver.FindElement(By.XPath("/html/body/div[1]/section/myapp/section/div/div/div/div/section/component/div[2]/div/div/div/div/div[3]/div[1]/div")).Text;

            if (actualvalue == "Data unavailable.")
            {
                Assert.IsTrue(actualvalue.Contains("Data unavailable."), actualvalue + " Data unavailable.");
            }
            else
            {
                var Team = new List <Team>();

                Thread.Sleep(2000);
                var allDivs = driver.FindElements(By.CssSelector(".si-team-data"));
                foreach (var div in allDivs)
                {
                    var teamname = div.FindElement(By.CssSelector(".si-fullName ")).Text;

                    var teamRedcard = div.FindElement(By.CssSelector(".si-goals")).Text;

                    Team.Add(new Team {
                        TeamName = teamname, TeamRedcard = teamRedcard
                    });
                    TestContext.Out.WriteLine($"TeamName: { teamname }| TeamRedcard: { teamRedcard } ");
                }
                CreateXlSheet(Team);
            }
        }
示例#16
0
        public players Firstplayer()

        {
            var DropDown = driver.FindElement(By.CssSelector(".si-stats-dropdown-container"));
            var action1  = new OpenQA.Selenium.Interactions.Actions(driver);

            ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
            action1.MoveToElement(DropDown);
            action1.Perform();
            DropDown = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                       .Until(driver => driver.FindElement(By.CssSelector(".si-stats-dropdown-container")));

            var name         = driver.FindElement(By.CssSelector(".si-awdPlyrName")).Text;
            var id           = driver.FindElement(By.CssSelector(".si-statHeadRow")).GetAttribute("data-playerid");
            var interception = driver.FindElement(By.CssSelector(".si-points span")).Text;

            return(new players
            {
                Name = name,
                Id = id,
                Interception = interception
            });
        }
示例#17
0
        public IWebElement GetShotonTargetData()
        {
            var DropDown = driver.FindElement(By.CssSelector(".si-stats-dropdown-container"));
            var action1  = new OpenQA.Selenium.Interactions.Actions(driver);

            ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
            action1.MoveToElement(DropDown);
            action1.Perform();
            DropDown = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                       .Until(driver => driver.FindElement(By.CssSelector(".si-stats-dropdown-container")));



            var players = new List <players>
            {
                Firstplayer()
            };

            var allDivs = driver.FindElements(By.CssSelector(".si-tRow")).Skip(2);

            foreach (var div in allDivs)
            {
                var name         = div.FindElement(By.CssSelector(".si-fullName ")).Text;
                var id           = div.GetAttribute("data-playerid");
                var shotontarget = div.FindElement(By.CssSelector(".si-plyStats-gamplyd ")).Text;

                players.Add(new players {
                    Name = name, Id = id, ShotonTarget = shotontarget
                });
                TestContext.Out.WriteLine($"NAME: { name }|Id:{id}| ShotonTarget: { shotontarget } ");
            }


            CreateXlSheet(players);
            return(null);
        }
 internal static void  DoubleClick(IWebElement clickElement, IWebDriver Driver)
 {
     OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver);
     action.Click(clickElement).Click(clickElement).Build().Perform();
 }
示例#19
0
 /// <summary>Performs all stored Actions.</summary>
 public void perform() {
     this._actions.Build().Perform();
     this._actions = null;
 }
 public void RightClick()
 {
     OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver);
     action.ContextClick(WebElement).Build().Perform();
 }
示例#21
0
 public Actions(OpenQA.Selenium.IWebDriver _webDriver) {
     _actions = new OpenQA.Selenium.Interactions.Actions(_webDriver);
 }
示例#22
0
        public void Execute(DriverManager driver, TestStep step)
        {
            long                order = step.Order;
            string              wait  = step.Wait != null ? step.Wait : "";
            List <TestStep>     steps = new List <TestStep>();
            IWebElement         ele;
            string              month = "";
            string              data  = "";
            string              xpath = "";
            VerifyError         err   = new VerifyError();
            IJavaScriptExecutor js    = (IJavaScriptExecutor)driver.GetDriver();

            OpenQA.Selenium.Interactions.Actions actions = new OpenQA.Selenium.Interactions.Actions(driver.GetDriver());

            string[] nascarGroups = { "CUP SERIES", "CAMPING WORLD TRUCK SERIES", "XFINITY SERIES" };

            if (step.Name.Equals("Verify NASCAR Groups"))
            {
                data = "//div[contains(@class,'scores-home-container')]//div[contains(@class,'active')]//ul";
                steps.Add(new TestStep(order, "Open Conference Dropdown", "", "click", "xpath", "//a[@class='dropdown-menu-title']", wait));
                steps.Add(new TestStep(order, "Verify Dropdown is Displayed", "", "verify_displayed", "xpath", data, wait));
                TestRunner.RunTestSteps(driver, null, steps);
                steps.Clear();

                data = data + "//li";
                steps.Add(new TestStep(order, "Verify Number of Groups", "3", "verify_count", "xpath", data, wait));
                TestRunner.RunTestSteps(driver, null, steps);
                steps.Clear();

                var groups = driver.FindElements("xpath", data);
                for (int i = 0; i < groups.Count; i++)
                {
                    if (nascarGroups[i].Equals(groups[i].GetAttribute("innerText")))
                    {
                        log.Info("Success. " + nascarGroups[i] + " matches " + groups[i].GetAttribute("innerText"));
                    }
                    else
                    {
                        log.Error("***Verification FAILED. Expected data [" + nascarGroups[i] + "] does not match actual data [" + groups[i].GetAttribute("innerText") + "] ***");
                        err.CreateVerificationError(step, nascarGroups[i], groups[i].GetAttribute("innerText"));
                    }
                }
            }

            else if (step.Name.Equals("Determine Current Race"))
            {
                month = DateTime.Now.Month.ToString("00");
                // determine week of season by today's month
                steps.Add(new TestStep(order, "Collect Bifrost Info", month, "script", "xpath", "Bifrost", wait));
                TestRunner.RunTestSteps(driver, null, steps);
                steps.Clear();

                xpath = "//div[@id='" + DataManager.CaptureMap["IND_EVENTID"] + "']";
                ele   = driver.FindElement("xpath", xpath);
                js.ExecuteScript("arguments[0].scrollIntoView(true);", ele);
                log.Info("*TEMPORARY FIX* : Scroll to Score Chip " + data);
            }

            else
            {
                throw new Exception("Test Step not found in script");
            }
        }
示例#23
0
        public void Searchplayers()
        {
            driver.Navigate().GoToUrl("https://www.indiansuperleague.com/");

            driver.Manage().Window.Maximize();

            string ReadExcel;
            int    rctn = 6;

            excel.Application x1app       = new excel.Application();
            excel.Workbook    x1workbook  = x1app.Workbooks.Open(@"D:\Automation\ISL\Player search file\player_data1.xlsx");
            excel.Worksheet   x1worksheet = x1workbook.Sheets[1];


            excel.Range x1range = x1worksheet.UsedRange;



            for (int i = 6; i <= rctn; i++)
            {
                for (int j = 2; j <= 78; j++)
                {
                    ReadExcel = x1range.Cells[i][j].Text.ToString();
                    driver.FindElement(By.XPath("/html/body/div[1]/header/section/div/div/div[3]/div/div[2]/div[1]/ul/li[5]/a")).Click();

                    var search = driver.FindElement(By.XPath("/html/body/div[1]/div[1]/div/div[2]/input"));
                    search.SendKeys(ReadExcel);
                    search.SendKeys(Keys.Enter);

                    var visible = driver.FindElement(By.XPath("//*[@id='cookiebtn']"));

                    if (visible.Displayed)
                    {
                        //Assert.AreEqual(true, visible.Displayed);
                        visible.Click();
                    }


                    /* FunctionalLibrary.TryFindElement(driver, "//*[@id='cookiebtn']" );
                     *
                     *   var visible =  IsElementVisible(element);
                     *   if (visible)
                     *   {
                     *   element.Click();
                     *   }*/



                    var viewprofile = driver.FindElement(By.Id("player-list"));
                    var action1     = new OpenQA.Selenium.Interactions.Actions(driver);
                    ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
                    action1.MoveToElement(viewprofile);
                    action1.Perform();
                    viewprofile = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                                  .Until(driver => driver.FindElement(By.Id("player-list")));

                    var playername = driver.FindElement(By.CssSelector(".article-name")).Text;

                    if (ReadExcel.Equals(playername))
                    {
                        Debug.WriteLine(playername, "player name is correct");
                    }
                    else
                    {
                        Debug.WriteLine(playername, "player name is incorrect");
                    }
                    var webe = driver.FindElement(By.Id("player-list"));


                    var href = webe.FindElement(By.CssSelector("a")).GetAttribute("href");


                    // WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));

                    //wait.Until(ExpectedConditions.UrlContains(href));

                    if (href == null)
                    {
                        Debug.WriteLine(playername, "Player not clikable");
                    }
                    else
                    {
                        Debug.WriteLine(playername, "player is clikable");
                        webe.Click();
                        Thread.Sleep(1000);
                        var playerdetail = driver.FindElement(By.CssSelector(".si-player-name")).Text;
                        if (playername.Equals(playerdetail))
                        {
                            Debug.WriteLine("Redirected on detail page");
                        }
                    }



                    Thread.Sleep(2000);

                    /*var viewprofilesroll = driver.FindElement(By.CssSelector(".article-content"));
                     * var action2 = new OpenQA.Selenium.Interactions.Actions(driver);
                     * ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
                     * action2.MoveToElement(viewprofilesroll);
                     * action2.Perform();
                     * viewprofilesroll = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                     *         .Until(driver => driver.FindElement(By.CssSelector(".article-content")));*/
                    //svar viewprofilesroll = driver.FindElement(By.CssSelector(".si-player-name"));
                }
            }
        }
示例#24
0
 /// <summary>Performs all stored Actions.</summary>
 public void perform()
 {
     this._actions.Build().Perform();
     this._actions = null;
 }
示例#25
0
        /// <summary>
        /// Метод реализует действие наведения указателя мыши
        /// </summary>
        public void MouseOverNoHover()
        {
            OpenQA.Selenium.Interactions.Actions builder = new OpenQA.Selenium.Interactions.Actions(BitrixFramework.WebDriver);
            builder.MoveToElement(BitrixFramework.FindWebElement(this)).Build().Perform();

            Log.MesNormal(String.Format("'{0}' -> Наведение указателя мыши", description));

            //проверяем страницу на наличие ошибок
            BitrixFramework.CheckJSErrors();
        }
示例#26
0
        /// <summary>
        /// Клик по WebItem. Аналог WebDriver.Click()
        /// После клика ждет заданное количество времени. Опционально, по умолчанию 1 секунда.
        /// </summary>
        /// <param name="secondsToWait">Время ожидания, секунд</param>
        /// <param name="ScrollToObject">Меняет скроллирование до объекта(по умолчанию: отключено для админской части и включено для публичной)
        /// Соответственно true включает скролл в адимнке и выключает в публичке</param>
        /// <param name="checkErrors">Проверить наличие ошибок. По умолчанию true - проверить</param>
        /// <param name="x">координата x для клика относительно верхнего левого угла объекта</param>
        /// <param name="y">координата y для клика относительно верхнего левого угла объекта</param>
        /// <param name="NoRefresh"> Если задан - рефреш страницы при зависании не производится</param>
        public void ClickAndWait(double secondsToWait = 0.5, bool ScrollToObject = true, bool checkErrors = true, int x = 0, int y = 0, bool NoRefresh = false)
        {
            if (ScrollToObject)
                BitrixFramework.ScrollOnCoords(this);

            if (x != 0 && y != 0)
            {
                OpenQA.Selenium.Interactions.Actions builder = new OpenQA.Selenium.Interactions.Actions(BitrixFramework.WebDriver);
                builder.MoveToElement(BitrixFramework.FindWebElement(this), x, y).Click().Build().Perform();
            }
            else
            {
                try
                {
                    BitrixFramework.FindWebElement(this).Click();
                }
                catch (NullReferenceException)
                {
                    Log.MesError("Не найден объект \"" + this.description + "\" по пути \"" + this.by.ToString() + "\"");
                    throw;
                }
                catch (StaleElementReferenceException)
                {
                    Log.MesQuestion("Изменился DOM страницы, и элемента " + this.description + " больше нет в кеше. Подождем 5 сек и попробуем найти его ещё разок");
                    BitrixFramework.Wait(5);
                    try
                    {
                        BitrixFramework.FindWebElement(this).Click();
                    }
                    catch
                    {
                        Log.MesError("Не найден объект \"" + this.description + "\" по пути \"" + this.by.ToString() + "\"");
                        throw;
                    }
                }
                catch (OpenQA.Selenium.WebDriverException e)
                {
                    Log.MesQuestion("Висит страница \r\nMessage: " + e.Message + "\r\nStackTrace: " + e.StackTrace + "\r\n<a href=\"" + ScreenCapture.Printscreen() + "\">скриншот</a>");
                    if(!NoRefresh)
                        BitrixFramework.Refresh();
                    BitrixFramework.Wait(5);
                }
            }
            Log.MesNormal(String.Format("'{0}' -> Клик", description));

            System.Threading.Thread.Sleep(Convert.ToInt32(secondsToWait * 1000));
            if (checkErrors)
            {
                BitrixFramework.CheckJSErrors();
                GM.CheckContentOnErrors();
            }
        }
示例#27
0
        /// <summary>
        /// Метод реализует действие двойной клик по WebItem
        /// </summary>
        /// <param name="checkErrors">Проверить наличие ошибок. По умолчанию true - проверить</param>
        public void DoubleClick(bool checkErrors = true)
        {
            //реализуем дабл клик js скриптом
            OpenQA.Selenium.Interactions.Actions builder = new OpenQA.Selenium.Interactions.Actions(BitrixFramework.WebDriver);
            builder.DoubleClick(BitrixFramework.FindWebElement(this)).Build().Perform();

            Log.MesNormal(String.Format("'{0}' -> Дабл клик", description));
            if (checkErrors)
            {
                //проверяем страницу на наличие ошибок
                BitrixFramework.CheckJSErrors();
                GM.CheckContentOnErrors();
            }
        }
示例#28
0
        /// <summary>
        /// Метод реализует действие драгндроп от одного элемента до другого
        /// </summary>
        /// <param name="WebItemToDrop">Объект на котором дропаем первый объект</param>
        /// <param name="isAdmin">Признак админки</param>
        /// <param name="ScrollToObject">Скроллить ли до объекта</param>
        public void DragAndDrop(WebItem WebItemToDrop, bool isAdmin = false, bool ScrollToObject = true)
        {
            OpenQA.Selenium.Interactions.Actions builder = new OpenQA.Selenium.Interactions.Actions(BitrixFramework.WebDriver);
            builder.DragAndDrop(BitrixFramework.FindWebElement(this), BitrixFramework.FindWebElement(WebItemToDrop)).Build().Perform();

            Log.MesNormal(String.Format("'{0}' -> Драгндроп до '{1}'", description, WebItemToDrop.description));

            //проверяем страницу на наличие ошибок
            BitrixFramework.CheckJSErrors();
            GM.CheckContentOnErrors();
        }
示例#29
0
 public static IWebElement TabAndReturnFocusedElement(this IWebDriver WebDriver)
 {
     OpenQA.Selenium.Interactions.Actions press = new OpenQA.Selenium.Interactions.Actions(WebDriver);
     press.SendKeys(Keys.Tab).Perform();
     return(WebDriver.SwitchTo().ActiveElement());
 }
示例#30
0
 public static void MouseClick(IWebElement element)
 {
     Console.WriteLine("Click the mouse on the element");
     var builder = new OpenQA.Selenium.Interactions.Actions(Driver);
     builder.Click(element).Perform();
 }
示例#31
0
 public void SelectResourceLibrary()
 {
     var action = new OpenQA.Selenium.Interactions.Actions(_webDriver);
     action.MoveToElement(ResourcesTab).Build().Perform();
     ResourcesLibrary.Click();
 }
 public void Hover()
 {
     OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver);
     action.MoveToElement(WebElement).Build().Perform();
 }
示例#33
0
        public void ElementAction(objIdentifier oI, Enum action, string ActionValue)
        {
            string      StepStartTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff");
            IWebElement WebElement    = getElement(oI);

            switch (action.ToString())
            {
            case "Click":
                WebElement.Click();
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "jsClick":
                JS = (IJavaScriptExecutor)driver;
                JS.ExecuteScript("document." + oI.jsId + oI.IdValue + "\").click();");
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "jsSetText":
                JS = (IJavaScriptExecutor)driver;
                JS.ExecuteScript("document." + oI.jsId + oI.IdValue + "\").style.value=\"" + ActionValue + "\";");
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "Clear":
                WebElement.Clear();
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "NavigateToElement":
                OpenQA.Selenium.Interactions.Actions actions = new OpenQA.Selenium.Interactions.Actions(driver);
                actions.MoveToElement(WebElement);
                actions.Perform();
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "VerifyText":
                if (WebElement.Text.Equals(ActionValue))
                {
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + WebElement.Text + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "text verification passed");
                }
                else
                {
                    ProjectDetails["CurrentTestResult"] = "Fail";
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + WebElement.Text + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "text verification failed");
                }
                break;

            case "InnerHtml":
                if (WebElement.Text.Equals(ActionValue))
                {
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + WebElement.Text + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "text verification passed");
                }
                else
                {
                    ProjectDetails["CurrentTestResult"] = "Fail";
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + WebElement.Text + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "text verification failed");
                }
                break;

            case "VerifyContains":
                if (WebElement.Text.Contains(ActionValue))
                {
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + WebElement.Text + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "contains verification passed");
                }
                else
                {
                    ProjectDetails["CurrentTestResult"] = "Fail";
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + WebElement.Text + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "contains verification failed");
                }
                break;

            case "VerifyTitle":
                if (driver.Title.Equals(ActionValue))
                {
                    spReporter.WriteLine("Waiting Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + driver.Title + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "title verification passed");
                }
                else
                {
                    ProjectDetails["CurrentTestResult"] = "Fail";
                    spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Expected Text = " + ActionValue + " Actual Text = " + driver.Title + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + "title verification failed");
                }
                break;

            case "SendKeys":
                WebElement.SendKeys(ActionValue);
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Value is " + ActionValue + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "ClearAndSendKeys":
                WebElement.Clear();
                WebElement.SendKeys(ActionValue);
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Value is " + ActionValue + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "ClearAndSendKeysAndTab":
                WebElement.Clear();
                WebElement.SendKeys(ActionValue);
                WebElement.SendKeys(Keys.Tab);
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Value is " + ActionValue + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "SelectByIndex":
                new SelectElement(WebElement).SelectByIndex(Int32.Parse(ActionValue));
                System.Threading.Thread.Sleep(250);
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was SelectByText(" + ActionValue + ")");
                break;

            case "SelectByText":
                new SelectElement(WebElement).SelectByText(ActionValue);
                System.Threading.Thread.Sleep(250);
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was SelectByText(" + ActionValue + ")");
                break;

            case "SelectByValue":
                new SelectElement(WebElement).SelectByValue(ActionValue);
                System.Threading.Thread.Sleep(250);
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was SelectByText(" + ActionValue + ")");
                break;

            case "SetProperty":
                JS = (IJavaScriptExecutor)driver;
                JS.ExecuteScript("document." + oI.jsId + oI.IdValue + "\").style." + oI.IdProperty + "=\"" + oI.IdPropertyValue + "\";");
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "Check":
                try
                {
                    if (!WebElement.GetAttribute("checked").Equals("true"))
                    {
                        WebElement.Click();
                    }
                }
                catch { }
                spReporter.WriteLine("Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was Checked(" + ActionValue + ")");
                break;

            case "Displayed":
                int synccounter = 0;
                while (!WebElement.Displayed)
                {
                    System.Threading.Thread.Sleep(100);
                    synccounter = synccounter + 1;
                    if (synccounter > 5)
                    {
                        ActionValue = "Not Displayed";
                        break;
                    }
                }
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was CheckDisplayed(" + ActionValue + ")");
                break;

            case "WaitResolveStaleElementAndClick":
                for (int i = 0; i < 60; i++)
                {
                    try
                    {
                        WebElement.Click();
                        i = 60;
                    }
                    catch (Exception e)
                    {
                        if (e.Message.Contains("stale element"))
                        {
                            System.Threading.Thread.Sleep(100);
                            WebElement = getElement(oI);
                        }
                        else
                        {
                            i = 60;
                        }
                    }
                }
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + " Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"));
                break;

            case "Uncheck":
                WebElement.Click();
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was Uncheck(" + ActionValue + ")");
                break;

            case "ClickHandleModal":
                WebElement.Click();
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was ClickHandleModal() ");
                break;

            case "Submit":
                WebElement.Submit();
                spReporter.WriteLine("Object was " + oI.IdName.ToString() + " Action was " + action.ToString() + "Started at : " + StepStartTime + " Completed at: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff") + " Action was ClickHandleModal() ");
                break;

            default:
                break;
            }
        }
示例#34
0
        /// <summary>
        /// Verifies that user can see every system, hospital and casemix folder for his permissions
        /// Also verifies that if casemix = false in CSV file, user cannot see a casemix folder
        /// </summary>
        /// <param name="username">The user to check for</param>
        private void CheckEachPermittedSystemAndHospitalAndCasemixFolderForUser(string username)
        {
            string systemText = "";

            GetListOfUserPermittedCasemixFolders(username);

            // Check each permitted system and hospital folder for the user
            if (_userPermittedHospitalFolders != null)
            {
                foreach (string hospital in _userPermittedHospitalFolders)
                {
                    // Check system element (if the hospital for this system is statewide) and double click on it if this is the first time we've checked for it.
                    // Collapsing the system folder is needed to see the hospital folders
                    if (_hospitalAndStatewideMapping != null && (_hospitalAndStatewideMapping[hospital] == "1"))
                    {
                        // Update systemText for the current hospital
                        if (AllDistinctHospitalAndSystemFolders != null)
                        {
                            systemText = AllDistinctHospitalAndSystemFolders[hospital];
                            FindSystemAndDoubleClickOnIt(systemText, username, hospital);
                        }
                    }

                    // Verify that hospital is present if it is a statewide hospital
                    if (_hospitalAndStatewideMapping != null && _hospitalAndStatewideMapping[hospital] == "1")
                    {
                        Assert.IsTrue(
                            Utility.Utility.IsElementPresent(
                                By.XPath(String.Format("//div[contains(., '{0}')]", hospital))));
                        Console.WriteLine("{0} can see {1} with hospital {2}", username, systemText,
                                          hospital);
                    }

                    // Verify that casemix folder is present if user has casemix permission
                    if (_userPermittedHospitalAndCasemixMapping != null)
                    {
                        if (_userPermittedHospitalAndCasemixMapping[hospital])
                        {
                            IWebElement hospitalElement =
                                Utility.Utility.GetElement(By.XPath(String.Format("//div[contains(., '{0}')]", hospital)));
                            Actions action = new Actions(WebBrowser.Current);
                            action.DoubleClick(hospitalElement);
                            action.Perform();
                            Assert.IsTrue(
                                Utility.Utility.IsElementPresent(
                                    By.XPath(String.Format("//div[contains(., '{0}')]", "Patient Level Detail"))));
                            Console.WriteLine(String.Format("{0} can see patient level detail for system {1} and hospital {2}", username, systemText, hospital));
                        }
                        else
                        {
                            IWebElement hospitalElement =
                                Utility.Utility.GetElement(By.XPath(String.Format("//div[contains(., '{0}')]", hospital)));
                            Actions action = new Actions(WebBrowser.Current);
                            action.DoubleClick(hospitalElement);
                            action.Perform();
                            Assert.IsFalse(
                                Utility.Utility.IsElementPresent(
                                    By.XPath(String.Format("//div[contains(., '{0}')]", "Patient Level Detail"))));
                            Console.WriteLine(String.Format("{0} cannot see patient level detail for system {1} and hospital {2}", username, systemText, hospital));
                        }
                    }
                }
            }
        }
示例#35
0
        public void CheckPage()
        {
            //
            if (!welcome && driver.FindElementsByCssSelector("div[data-test-id='nux_name_done_btn']").Count != 0)
            {
                try
                {
                    driver.FindElementByCssSelector("div[data-test-id='nux_name_done_btn']").Click();
                    Console.WriteLine("press next");
                    welcome = true;
                    return;
                }
                catch
                {
                    return;
                }
            }
            if (!skip && driver.FindElementsByCssSelector("button[data-test-id='nux-ext-skip-btn']").Count != 0)
            {
                try
                {
                    driver.FindElementByCssSelector("button[data-test-id='nux-ext-skip-btn']").Click();
                    Console.WriteLine("press skip");
                    skip = true;
                    return;
                }
                catch
                {
                    return;
                }
            }

            //if (welcome && !gender && driver.FindElementsByCssSelector(".NuxGenderStep__headerContent").Count == 1)
            //{
            //    var buttons = driver.FindElementsByTagName("button");
            //    foreach (var item in buttons)
            //    {
            //        if (item.Text.ToLower().Contains("female"))
            //        {
            //            item.Click();
            //        }
            //    }
            //    //Female
            //}
            if (!gender && driver.FindElementsByCssSelector("label[for='female']").Count > 0)
            {
                try
                {
                    var x = driver.FindElementsByCssSelector("label[for='female']");
                    x[0].Click();
                    gender = true;
                    return;
                }
                catch { return; }
            }


            if (!country && driver.FindElementById("newUserCountry") != null)
            {
                try
                {
                    driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button").Click();
                    country = true;
                    return;
                }
                catch { }

                try
                {
                    driver.FindElementByCssSelector("div[data-test-id=nux-locale-country-next-btn]").Click();
                    country = true;
                    return;
                }
                catch { }
            }

            if (!country && driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button") != null)
            {
                try
                {
                    driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button").Click();
                    country = true; return;
                }
                catch { return; }
            }
            if (!card && driver.FindElementsByCssSelector("[aria-label='Interest card']").Count > 1)
            {
                int result = 0;

                Save();
                var cards = driver.FindElementsByCssSelector("[aria-label='Interest card']");
                for (int i = 0; i < 100; i++)
                {
                    if (result > 5)
                    {
                        var button = driver.FindElementsByCssSelector("[data-test-id='nux-picker-done-btn'] button");
                        if (button.Count > 0)
                        {
                            button[0].Click();

                            card = true;
                            break;
                        }
                        button = driver.FindElementsByCssSelector("button[type='submit']");
                        if (button.Count > 0)
                        {
                            button[0].Click();

                            card = true;
                            break;
                        }
                    }



                    try
                    {
                        OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver);
                        // action.MoveToElement(cards[i]).DoubleClick().Build().Perform();
                        action.MoveToElement(cards[i]).DoubleClick().Build().Perform();
                        //   WebElement we = webdriver.findElement(By.xpath("html/body/div[13]/ul/li[4]/a"));
                        //    action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here"))).click().build().perform();
                        //}
                        //cards[i].Click();
                        result++;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        cards = driver.FindElementsByCssSelector(".NuxInterest");
                        //return;
                    }


                    //      return;
                }
            }



            if (!scip && card && driver.FindElementsByCssSelector(".NuxExtensionUpsell__optionalSkip").Count != 0)
            {
                try
                {
                    var scripButton = driver.FindElementsByCssSelector(".NuxExtensionUpsell__optionalSkip");
                    scripButton[0].Click();
                    scip = true;
                    return;
                }
                catch
                { return; }
            }


            if (card && !main)
            {
                try
                {
                    var body = driver.FindElementsByCssSelector(".mainContainer");


                    //if(body.Count > 0)
                    body[0].Click();

                    Thread.Sleep(TimeSpan.FromSeconds(15));

                    var buttons = driver.FindElementsByTagName("button");
                    foreach (IWebElement button in buttons)
                    {
                        Console.WriteLine(button.Text);
                        if (button.Text.Contains("Got"))
                        {
                            OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver);
                            action.MoveToElement(button).DoubleClick().Build().Perform();
                        }
                    }



                    Thread.Sleep(TimeSpan.FromSeconds(5));
                    driver.FindElementByTagName("body").Click();


                    driver.Url = "https://www.pinterest.com/";
                    Thread.Sleep(TimeSpan.FromSeconds(15));

                    main = true; return;
                }
                catch
                {
                    return;
                }
            }

            if (main && !url)
            {
                try
                {
                    Thread.Sleep(TimeSpan.FromSeconds(5));

                    if (driver.Url.EndsWith("/settings/"))
                    {
                        url = true;
                    }

                    driver.Url = "https://pinterest.com/settings";
                }
                catch
                {
                }
            }

            if (url && !settings)
            {
                try
                {
                    for (int i = 0; i < 50; i++)
                    {
                        driver.FindElementById("first_name").SendKeys(Keys.Backspace);
                        driver.FindElementById("last_name").SendKeys(Keys.Backspace);
                        driver.FindElementById("username").SendKeys(Keys.Backspace);
                    }
                    //var selectElement = new SelectElement(driver.FindElementById("accountBasicsCountry"));
                    //selectElement.SelectByValue("US");


                    driver.FindElementById("first_name").SendKeys(PrettyName());
                    driver.FindElementById("last_name").SendKeys(PrettyName());

                    string[] cities = File.ReadAllLines("city_names.txt");
                    driver.FindElementById("location").SendKeys(cities[new Random().Next(0, cities.Count())]);


                    string userName = prettyName + new Random().Next();
                    driver.FindElementById("username").SendKeys(userName);

                    //  string userName = driver.FindElementById("userUserName").GetAttribute("value");

                    //malmopianoilianaruby
                    SaveSettings();

                    settings = true;

                    //$$("input[type=file]")
                    Thread.Sleep(new TimeSpan(0, 0, 5));

                    driver.Quit();

                    //data-test-id="createBoardCard"
                    // tut

                    driver.Url = "https://pinterest.com/" + userName + "/boards";
                    Thread.Sleep(new TimeSpan(0, 0, 5));
                    var createBoards = driver.FindElementsByCssSelector("[data-test-id=createBoardCard]");
                    Thread.Sleep(new TimeSpan(0, 0, 5));
                    foreach (var item in createBoards)
                    {
                        if (item.Enabled && item.Displayed)
                        {
                            item.Click();
                        }
                    }

                    var input = driver.FindElementById("boardEditName");
                    input.SendKeys(prettyName);

                    var buttonsCreate = driver.FindElementsByTagName("button");
                    foreach (var item in buttonsCreate)
                    {
                        if (item.Text.Contains("Create") && item.Enabled && item.Displayed)
                        {
                            item.Click();
                            Thread.Sleep(new TimeSpan(0, 0, 15));
                            AddImage();
                        }
                    }
                }
                catch
                {
                }
            }
        }
示例#36
0
        public IWebElement GetLeagueTrackerData()
        {
            var Leaguetrackerdata = driver.FindElement(By.XPath("/html/body/div[1]/section/myapp/section[7]/div/div/div/div/section/component/div"));
            var action1           = new OpenQA.Selenium.Interactions.Actions(driver);

            ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
            action1.MoveToElement(Leaguetrackerdata);
            Thread.Sleep(2000);
            action1.Perform();
            Leaguetrackerdata = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                                .Until(driver => driver.FindElement(By.XPath("/html/body/div[1]/section/myapp/section[7]/div/div/div/div/section/component/div")));


            excel.Application x1app       = new excel.Application();
            excel.Workbook    x1workbook  = x1app.Workbooks.Open(@"C:\Users\aditya.bhosle\source\repos\Data\Data\NewFolder1\Excel_stats.xlsx", ReadOnly: false);
            excel.Worksheet   xlWorkSheet = (excel.Worksheet)x1workbook.Worksheets[1];

            excel.Range x1range = xlWorkSheet.UsedRange;



            driver.FindElements(By.CssSelector(".si-league-tracker"));

            var goals1             = driver.FindElement(By.CssSelector(".si-fkt-bOne .si-fkt-sctn-number")).Text;
            var minspergoal        = driver.FindElement(By.CssSelector(".si-fkt-bTwo-col1 .si-fkt-sctn-number")).Text;
            var avggoalsmatch      = driver.FindElement(By.CssSelector(".si-fkt-bTwo-col2 .si-fkt-sctn-number")).Text;
            var goalconversionrate = driver.FindElement(By.CssSelector(".si-fkt-bTwo-col3 .si-fkt-sctn-number")).Text;
            var passes             = driver.FindElement(By.CssSelector(".si-fkt-bTwo-col4 .si-fkt-sctn-number")).Text;
            var avgpasspergame     = driver.FindElement(By.CssSelector(".si-fkt-bThree .si-fkt-sctn-number")).Text;
            var redcards           = driver.FindElement(By.CssSelector(".si-fkt-bSeven .si-fkt-sctn-number")).Text;
            var yellowcards        = driver.FindElement(By.CssSelector(".si-fkt-bEight .si-fkt-sctn-number")).Text;
            var tackles            = driver.FindElement(By.CssSelector(".si-fkt-bEight.AEight .si-fkt-sctn-number")).Text;
            var fouls         = driver.FindElement(By.CssSelector(".si-fkt-bNine .si-fkt-sctn-number")).Text;
            var interceptions = driver.FindElement(By.CssSelector(".si-fkt-bTen .si-fkt-sctn-number")).Text;
            var blocks        = driver.FindElement(By.CssSelector(".si-fkt-bEleven .si-fkt-sctn-number")).Text;
            var cleansheet    = driver.FindElement(By.CssSelector(".si-fkt-bTwelve .si-fkt-sctn-number")).Text;

            var leaguetracker = new Leaguetracker
            {
                Goals1             = goals1,
                MinsPerGoal        = minspergoal,
                AvgGoalsMatch      = avggoalsmatch,
                GoalConversionRate = goalconversionrate,
                Passes             = passes,
                AvgPassPerGame     = avgpasspergame,
                RedCards           = redcards,
                YellowCards        = yellowcards,
                Tackles            = tackles,
                Fouls         = fouls,
                Interceptions = interceptions,
                Blocks        = blocks,
                CleanSheets   = cleansheet
            };

            TestContext.Out.WriteLine($"Goals1: { goals1 } | MinsPerGoal: { minspergoal } | AvgGoalsMatch: { avggoalsmatch } | AvgGoalsMatch: { avggoalsmatch }" +
                                      $"| GoalConversionRate: { goalconversionrate } | Passes: { passes } | AvgPassPerGame: { avgpasspergame } | RedCards: { redcards }" +
                                      $"| YellowCards: { yellowcards } | Tackles: { tackles } | Fouls: { fouls } | Interceptions: { interceptions }" +
                                      $" | Blocks: { blocks } | CleanSheets: { cleansheet }");



            CreateXlSheet(leaguetracker);
            return(null);
        }
示例#37
0
        public void Searchplayers()
        {
            driver.Navigate().GoToUrl("https://www.indiansuperleague.com/");

            driver.Manage().Window.Maximize();

            string ReadExcel;
            int    rctn = 6;

            excel.Application x1app       = new excel.Application();
            excel.Workbook    x1workbook  = x1app.Workbooks.Open(@"D:\Automation\ISL\Player search file\player_data1.xlsx");
            excel.Worksheet   x1worksheet = x1workbook.Sheets[1];


            excel.Range x1range = x1worksheet.UsedRange;



            for (int i = 6; i <= rctn; i++)
            {
                for (int j = 2; j <= 78; j++)
                {
                    ReadExcel = x1range.Cells[i][j].Text.ToString();
                    driver.FindElement(By.XPath("/html/body/div[1]/header/section/div/div/div[3]/div/div[2]/div[1]/ul/li[5]/a")).Click();

                    var search = driver.FindElement(By.XPath("/html/body/div[1]/div[1]/div/div[2]/input"));
                    search.SendKeys(ReadExcel);
                    search.SendKeys(Keys.Enter);

                    var visible = driver.FindElement(By.XPath("//*[@id='cookiebtn']"));

                    if (visible.Displayed)
                    {
                        //Assert.AreEqual(true, visible.Displayed);
                        visible.Click();
                    }
                    var record = driver.FindElement(By.XPath("/html/body/div[1]/section/myapp/section/div/div/div/div/section/component/div/div/div[2]/div[2]/span")).Text;
                    if (record.StartsWith("0 records for"))
                    {
                        Console.WriteLine(ReadExcel, "player is deleted");
                    }

                    /* FunctionalLibrary.TryFindElement(driver, "//*[@id='cookiebtn']" );
                     *
                     *   var visible =  IsElementVisible(element);
                     *   if (visible)
                     *   {
                     *   element.Click();
                     *   }*/


                    else if (IsElementPresent(By.Id("player-list")))
                    {
                        var viewprofile = driver.FindElement(By.Id("player-list"));
                        var action1     = new OpenQA.Selenium.Interactions.Actions(driver);
                        ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(document.body.scrollHeight, 0)");
                        action1.MoveToElement(viewprofile);
                        action1.Perform();
                        viewprofile = new WebDriverWait(driver, new TimeSpan(0, 1, 0))
                                      .Until(driver => driver.FindElement(By.Id("player-list")));

                        var playername = driver.FindElement(By.CssSelector(".article-name")).Text;

                        if (ReadExcel.Equals(playername))
                        {
                            Console.WriteLine(playername, "player name is correct");
                        }
                        else
                        {
                            Console.WriteLine(playername, "player name is incorrect");
                        }
                        var webe = driver.FindElement(By.Id("player-list"));


                        var href = webe.FindElement(By.CssSelector("a")).GetAttribute("href");



                        if (href == null)
                        {
                            Console.WriteLine(playername, "Player not clikable");
                        }
                        else
                        {
                            Debug.WriteLine(playername, "player is clikable");
                            webe.Click();
                            Thread.Sleep(1000);
                            var playerdetail = driver.FindElement(By.CssSelector(".si-player-name")).Text;
                            if (playername.Equals(playerdetail))
                            {
                                Console.WriteLine(playername, "Redirected on detail page");
                            }
                            var error = driver.FindElement(By.CssSelector(".txt-1")).Text;
                            if (error.Equals("Oops!Page Not Found."))
                            {
                                String currenturl = driver.Url;
                                Console.WriteLine(currenturl, "404 page");
                            }
                        }
                    }


                    else
                    {
                        String currenturl = driver.Url;
                        Console.WriteLine(currenturl, "player profile isn't available");
                    }
                }
            }
        }
示例#38
0
        public void upLoad()
        {
            //Thread.Sleep(3000);
            //driver.FindElement(By.CssSelector("a.menuBtn_upload")).Click();
            //driver.FindElement(By.CssSelector("#a-pw_add > span.icontxt")).Click();
            //Thread.Sleep(1000);
            //Thread x = new Thread(new ThreadStart(Upload_File));
            //x.Start();
            //Thread.Sleep(1000);
            //driver.FindElement(By.CssSelector("table.table-pw_next a.btn_upload")).Click();
            //Thread.Sleep(2000);

            ////如果进度元素不是显示100,那么继续上传
            //if (driver.FindElement(By.XPath("//[@id='efaf3e61-c983-4dc3-9622-436d51d5a88c']/sapn[3]")).Text.Contains()!=100)
            //{

            //}

            //下载
            Thread.Sleep(1000);
            //driver.FindElement(By.XPath("//ul[@id='commandList']/li/table/tbody/tr/td/div/span")).Click();
            ////driver.FindElement(By.CssSelector("div.fileCommand span.MixiTai_Checkbox")).Click();
            ////driver.FindElement(By.XPath("//ul[@id='commandList']/li[1]/table/tbody/tr/td[2]/div/table/tbody/tr[2]/td/span")).Click();
            //driver.FindElement(By.XPath("(//input[@value='Open'])")).Click();
            ////driver.FindElement(By.CssSelector("a.option_Open")).Click();
            //Thread.Sleep(100);
            ////driver.FindElement(By.CssSelector("div.fileCommand span.MixiTai_Checkbox")).Click();
            //driver.FindElement(By.XPath("//ul[@id='commandList']/li/table/tbody/tr/td/div/span")).Click();
            //Thread.Sleep(100);
            //driver.FindElement(By.XPath("(//input[@value='Open'])")).Click();
            ////driver.FindElement(By.CssSelector("a.menuBtn_return > span.icontxt")).Click();
            //driver.FindElement(By.XPath("//ul[@id='commandList']/li[2]/table/tbody/tr/td[2]/div/table/tbody/tr[2]/td/span")).Click();
            //driver.FindElement(By.XPath("(//input[@value='Open'])[2]")).Click();
            //driver.FindElement(By.CssSelector("a.menuBtn_downLoad > span.icontxt")).Click();
            //driver.FindElement(By.CssSelector("a.menuBtn_downLoad > span.icontxt")).Click();
            //driver.FindElement(By.XPath("//div[@id='FilesView']/div[3]/a/span")).Click();

            var openFolderTableElement =
                driver.FindElement(
                    By.CssSelector("table[data-name='Angkor']"));

            var mouseOverAction = new OpenQA.Selenium.Interactions.Actions(driver);
            mouseOverAction.MoveToElement(openFolderTableElement);
            //notice: Actions必须要执行perform
            mouseOverAction.Perform();
            openFolderTableElement.FindElement(By.CssSelector("div.menuBtn a.option_Open")).Click();

            Thread.Sleep(1000);
            var openFileTableElement =
                driver.FindElement(
                    By.CssSelector("table[data-name='AppCertKitArmSetup.exe']"));

            var mouseOverAction1 = new OpenQA.Selenium.Interactions.Actions(driver);
            mouseOverAction1.MoveToElement(openFileTableElement);
            //notice: Actions必须要执行perform
            mouseOverAction1.Perform();
            openFileTableElement.FindElement(By.CssSelector("div.menuBtn a.option_Open")).Click();
            //driver.FindElement(By.LinkText("Download File")).Click();
            driver.FindElement(By.CssSelector("a.menuBtn_downLoad")).Click();
            Thread.Sleep(1000);
            var auto = new AutoItX3();
            //auto.Send("{BROWSE}");
            //Thread.Sleep(1000);

            //auto.Send("{TAB}");
            //auto.Send("{TAB}");
            //auto.Send("{ENTER}");
            Thread.Sleep(1000);
            const string widowTitle = "[Class:#32770]";
            auto.ControlFocus(widowTitle, "Choose Download Folder:", "[CLASS:Edit; INSTANCE:1]");
            auto.Send(@"C:");
            auto.ControlClick(widowTitle, "Choose Download Folder", "[CLASS:Button; INSTANCE:1]");
            auto.Send("{ENTER}");
            Thread.Sleep(5000);

            //driver.FindElement(By.LinkText("退出")).Click();
        }
        public void basicInfoTab(String initVidName)
        {
            String videoID_Admin;

            log.Info("inside basicInfoTab " + " at line:" + new StackTrace(true).GetFrame(0).GetFileLineNumber());

            //getting GUID of the current video
            guid_Admin = videoGuidField().GetAttribute("value");

            log.Info("Guid_Admin:: " + guid_Admin);

            videoID_Admin = videoIdField().GetAttribute("value");

            log.Info("VideoID_Admin:: " + videoID_Admin);

            //getting the uique name for the video title
            //videoName = "vid" + uf.getShortGuid().Substring(0, 10);
            videoName = initVidName + uf.getShortGuid();
            log.Info("Video name  : " + videoName);

            //Store the video details in sysconfig.xml file
            //cf.writingIntoXML("AdminPortal", "VideoManagement", "VideoName", videoName, "SysConfig.xml");
            cf.writingIntoXML("Admin", "External Management", "VideoName", videoName, "TestCopy.xml");

            cf.writingIntoXML("AdminPortal", "VideoManagement", "VideoID", videoID_Admin, "SysConfig.xml");
            cf.writingIntoXML("AdminPortal", "VideoManagement", "Guid", guid_Admin, "SysConfig.xml");

            //Enter data in Title field

            videoTitleField().SendKeys(videoName);

            videoTitleUsedInRecentVideoSection = videoName;

            //Enter data in ShortDescription field
            videoDescription().SendKeys("This field is for writing Description");

            int size = driver.FindElements(By.TagName("iframe")).Count();

            Console.WriteLine("Total Frames:" + size);

            Thread.Sleep(5000);

            //Enter data into abstract field
            iWait.Until(ExpectedConditions.ElementExists((OR.GetElement("VideoManagement", "Abstract", "TVAdminPortalOR.xml"))));

            IWebElement abstract_frame = driver.FindElement((OR.GetElement("VideoManagement", "Abstract", "TVAdminPortalOR.xml")));

            driver.SwitchTo().Frame(abstract_frame);

            IWebElement editor_body = driver.FindElement(By.TagName("body"));

            OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver);
            action.SendKeys(editor_body, abstractContent).Build().Perform();
            driver.SwitchTo().DefaultContent();

            SelectElement VideoTypeSelector = new SelectElement(videoType());

            VideoTypeSelector.SelectByIndex(3);
            String selectedVideoType = VideoTypeSelector.SelectedOption.Text.Trim();

            String videoCreatedDate = driver.FindElement((OR.GetElement("VideoManagement", "VideoCreatedDT", "TVAdminPortalOR.xml"))).GetAttribute("value");

            log.Info("videoCreatedDate   :" + videoCreatedDate);

            cf.writingIntoXML("AdminPortal", "VideoManagement", "CreatedDate", videoCreatedDate, "SysConfig.xml");
        }
示例#40
0
        public void Group_Test()
        {
            driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(30));
            driver.Navigate().GoToUrl(this.baseURL);
            driver.FindElementById("email").Clear();
            driver.FindElementById("email").SendKeys("*****@*****.**");
            driver.FindElementById("password").Clear();
            driver.FindElementById("password").SendKeys("password");
            //Thread.Sleep(2 * 1000);
            driver.FindElementById("submit").Click();
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("Main"));
            driver.FindElementById("myGroups").Click();
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("MyGroups"));
            driver.FindElementByClassName("navbar-brand").Click();
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("Main"));
            driver.FindElementById("myGroups").Click();
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("MyGroups"));
            SelectElement selector = new SelectElement(driver.FindElementById("groupInvites"));

            selector.SelectByText("Basic diagnosis (created by [email protected])");
            driver.FindElementById("submit").Click();
            selector = new SelectElement(driver.FindElementById("groupInvites"));
            selector.SelectByIndex(0);
            selector.SelectByIndex(1);
            driver.FindElementsByName("submitButton")[1].Click();
            driver.FindElementById("Basic diagnosis (created by [email protected])").Click();
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("Group"));
            selector = new SelectElement(driver.FindElementById("TestId"));
            selector.SelectByIndex(0);
            driver.FindElementById("submit").Click();
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("Answer Question"));
            driver.FindElementsByName("norm")[1].Click();
            IWebElement slider = driver.FindElementByName("sure1");

            OpenQA.Selenium.Interactions.Actions actions = new OpenQA.Selenium.Interactions.Actions(driver);
            actions.ClickAndHold(slider);
            actions.MoveByOffset(40, 0).Build().Perform();
            actions.Release(slider);
            driver.FindElementByClassName("TokenSearch").FindElement(By.TagName("input")).SendKeys("ca");
            driver.FindElementByClassName("Dropdown").FindElement(By.TagName("li")).Click();
            IWebElement slider2 = driver.FindElementByName("sure2");

            actions.ClickAndHold(slider2);
            actions.MoveByOffset(25, 0).Build().Perform();
            actions.Release();
            driver.FindElementById("submit").Click();
            for (int i = 1; i <= 8; i++)
            {
                driver.FindElementById("submit").Click();
            }
            bool presentFlag = false;

            try
            {
                // Check the presence of alert
                IAlert alert = driver.SwitchTo().Alert();
                // Alert present; set the flag
                presentFlag = true;
                //Thread.Sleep(3000);
                // if present consume the alert
                alert.Accept();
            }
            catch (NoAlertPresentException ex)
            {
                Assert.IsTrue(false);
            }
            Assert.IsTrue(presentFlag);
            Assert.IsTrue(driver.FindElementById("meta").GetAttribute("name").Equals("Main"));
            driver.Close();
        }
示例#41
0
 public static void KeyboardSendKeys(string code)
 {
     Console.WriteLine("Send key '" + code + "' from keyboard");
     var builder = new OpenQA.Selenium.Interactions.Actions(Driver);
     builder.SendKeys(code).Perform();
 }