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(); }
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(); }
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); } }
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"); }
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(); } } }
/// <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); } }
/// <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); } }
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 { } }
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); } } } }
/// <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); } }
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; }
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 { } }
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); } }
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 }); }
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(); }
/// <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(); }
public Actions(OpenQA.Selenium.IWebDriver _webDriver) { _actions = new OpenQA.Selenium.Interactions.Actions(_webDriver); }
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"); } }
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")); } } }
/// <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(); }
/// <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(); } }
/// <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(); } }
/// <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(); }
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()); }
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(); }
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(); }
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; } }
/// <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)); } } } } }
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 { } } }
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); }
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"); } } } }
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"); }
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(); }
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(); }