public void InitElements_Indexer(PageObjectWithDecoratedIndexer pageObjectWithDecoratedIndexer, PageObjectFactory pageObjectFactory) { new Action(() => pageObjectFactory.InitElements(pageObjectWithDecoratedIndexer)).Should() .Throw <DecorationException>() .WithMessage($"Unable to decorate {pageObjectWithDecoratedIndexer.GetType().Name}.Item, it cannot be written to"); }
public T GetInstance <T>() where T : PageBase { IPageObjectFactory objectFactory = new PageObjectFactory(); T page = objectFactory.Create <T>(_driver); return(page); }
public void ShouldBeAbleToCreatePageObjectWithBasicPageElement() { var basicPageObject = PageObjectFactory.GetPageObjectByType <BasicPageObject>(GetWebDriverMock()); Assert.AreEqual(basicPageObject.GetType(), typeof(BasicPageObject)); Assert.AreEqual(basicPageObject.Element.GetType(), typeof(BasicPageElement)); }
public void ShouldBeAbleToCreatePageObjectWithIncludedPartialPageObject() { var parentPageObject = PageObjectFactory.GetPageObjectByType <ParentPageObject>(GetWebDriverMock()); Assert.AreEqual(parentPageObject.GetType(), typeof(ParentPageObject)); Assert.AreEqual(parentPageObject.Element.GetType(), typeof(BasicPageElement)); Assert.AreEqual(parentPageObject.ChildPageObject.Element.GetType(), typeof(BasicPageElement)); }
/// <summary> /// Clicks on a wrapped WebElement and creates new page object instance of given type. /// </summary> /// <typeparam name="TPage"> /// The type of page object being created. /// </typeparam> /// <returns> /// New page object instance. /// </returns> public TPage Open <TPage>() { IWebDriver wd = WrappedDriver; Click(); return(PageObjectFactory.Create <TPage>(wd)); }
public CategoryPage GoToRandomCategory() { var size = productCategories.Count; var random = new Random().Next(0, size); HoverOverElement(productCategoryButton, nameof(productCategoryButton)) .ClickElement(productCategories.ElementAt(random), nameof(productCategories)); return(PageObjectFactory.CreateCategoryPage(driver)); }
public void InitElements_DoesNotDecorateUndecoratedMembers([Frozen] Mock <IPageObjectMemberDecorator> memberDecoratorMock, PageObjectFactory pageObjectFactory) { pageObjectFactory.InitElements(new PageObjectWithUndecoratedMembers()); memberDecoratorMock.Verify(x => x.Decorate(It.IsAny <Type>(), It.IsAny <IEnumerable <By> >(), It.IsAny <IElementLocator>()), Times.Never()); }
/// <summary> /// Clicks on wrapped WebElement, waits until new window is opened and switches to it. /// </summary> /// <typeparam name="TPage"> /// Type of page object being created. /// </typeparam> /// <returns> /// New page object instance. /// </returns> public TPage OpenInNewWindow <TPage>() { IWebDriver wd = WrappedDriver; wd.WaitUntilNewWindowOpened(Click); wd.SwitchToLastOpenedWindow(); return(PageObjectFactory.Create <TPage>(wd)); }
/// <summary> /// Opens the drop down and returns the option. /// </summary> /// <param name="optionText">The option.</param> /// <param name="stringComparison">The string comparison.</param> /// <returns></returns> /// <exception cref="NoSuchElementException"></exception> public virtual MenuItemComponent SelectOption(string optionText, StringComparison stringComparison = StringComparison.Ordinal) { // This isn't ideal but since the dropdown menu items are // generated on the first time the parent menu item is clicked, // click the parent element, wait 500 ms (should be enough time for // the dropdown to be generated), and move the mouse below the // parent element to locate the dropdown container. WrappedElement.Click(); Thread.Sleep(500); // Determine where the float-menu will appear. Usually it's either // directly below or to the right. var(X, Y) = GetDirectionFloatMenuWillOpen(); // Move below the WrappedElement. WrappedDriver.CreateActions() .MoveToElement( toElement: WrappedElement, offsetX: X, offsetY: Y, offsetOrigin: MoveToElementOffsetOrigin.Center) .Perform(); // Get the container element under the mouse. var focusedElement = WrappedDriver .GetHoveredElements(allMenuDropDownsSelector) .First(); var menuItemEl = focusedElement.FindElements(dropDownItemsSelector) .FirstOrDefault(el => { var textEl = el.FindElements(textSelector) .FirstOrDefault(); return(textEl == null ? false : String.Equals( textEl.TextHelper().InnerText, optionText, stringComparison)); }); if (menuItemEl == null) { throw new NoSuchElementException(); } var selector = ByElement.FromElement(menuItemEl); return(PageObjectFactory.PrepareComponent( new MenuItemComponent( selector, PageObjectFactory, WrappedDriver))); }
public void Init() { var browserName = properties.SelectSingleNode("//browser").InnerXml; driver = DriverFactory.GetDriver(browserName); driver.Manage().Window.Maximize(); driver.Url = storeUrl; menu = PageObjectFactory.CreateMenuPage(driver); }
private ProductPage AddRandomProduct() { var random = new Random().Next(1, 5); Debug.WriteLine($"Adding {random} random products"); menu = PageObjectFactory.CreateMenuPage(driver); ProductPage productPage = menu.GoToRandomCategory() .GoToRandomProductPageAndAssertItSwitchedCorrectly(); AddToExpectedOrder(productPage.GetProductName(), productPage.GetProductPrice(), random); return(productPage.AddProductXtimes(random)); }
public ProductPage GoToRandomProductPageAndAssertItSwitchedCorrectly() { var size = products.Count; var random = new Random().Next(0, size); IWebElement element = products.ElementAt(random); string productName = Regex.Replace(element.Text, removeDashesRegex, ""); ClickElement(element, nameof(element)); ProductPage productPage = PageObjectFactory.CreateProductPage(driver); AssertEquals(productName, productPage.GetProductName()); return(productPage); }
public void ShouldBeAbleToCreatePageObjectWithDefaultPageElements() { var defaultElementsPageObject = PageObjectFactory.GetPageObjectByType <DefaultElementsPageObject>(GetWebDriverMock()); Assert.AreEqual(defaultElementsPageObject.GetType(), typeof(DefaultElementsPageObject)); Assert.AreEqual(defaultElementsPageObject.ButtonElement.GetType(), typeof(Button)); Assert.AreEqual(defaultElementsPageObject.CheckBoxElement.GetType(), typeof(CheckBox)); Assert.AreEqual(defaultElementsPageObject.HiddenElement.GetType(), typeof(HiddenElement)); Assert.AreEqual(defaultElementsPageObject.ImageElement.GetType(), typeof(Image)); Assert.AreEqual(defaultElementsPageObject.InputElement.GetType(), typeof(Input)); Assert.AreEqual(defaultElementsPageObject.LinkElement.GetType(), typeof(Link)); Assert.AreEqual(defaultElementsPageObject.SelectBoxElement.GetType(), typeof(SelectBox)); }
public void CheckTitles() { List <string> menuOptions = new List <string>() { "News", "Documentation", "Contact" }; var homePage = PageObjectFactory.GetPage <NUnitHomePage>(); homePage.Open(); foreach (var menuOption in menuOptions) { homePage.OpenMenu(menuOption.ToLower()); string actualResult = homePage.GetTitle(); Assert.IsTrue(actualResult.Contains(menuOption)); } }
public void InitElements_DecoratesProperties([Frozen] Mock <IPageObjectMemberDecorator> memberDecoratorMock, PageObjectFactory pageObjectFactory, PageObjectWithProperties pageObject, int value) { memberDecoratorMock.Setup(x => x.Decorate(typeof(int), It.IsAny <IEnumerable <By> >(), It.IsAny <IElementLocator>())) .Returns(value); pageObjectFactory.InitElements(pageObject); memberDecoratorMock.Verify(x => x.Decorate(typeof(int), It.IsAny <IEnumerable <By> >(), It.IsAny <IElementLocator>()), Times.Exactly(4)); pageObject.PublicProperty.Should().Be(value); pageObject.PrivatePropertyValue().Should().Be(value); pageObject.ProtectedPropertyValue().Should().Be(value); pageObject.InternalPropertyValue().Should().Be(value); }
public void VulnerabilityScanAfterLogin() { Client.Pscan.EnableAllScanners(ApiKey); Driver.Navigate().GoToUrl(Target + "insecure/public/Login.jsp"); var loginPage = PageObjectFactory.GetInitializedPageObject <LoginPage>(Driver); loginPage.SendKeysToLoginField("admin"); loginPage.SendKeysToPasswordField("secret"); loginPage.PressLoginButton(); var apiResponse = ScanHelper.StartSpider(Client); ScanHelper.WaitForTaskToComplete(apiResponse, Client.Spider.GetStatus); apiResponse = ScanHelper.StartAscan(Client); ScanHelper.WaitForTaskToComplete(apiResponse, Client.Ascan.GetStatus); AlertHelper.PrintAlertsToConsole(Client.Core.GetAlerts(Target)); }
public AccountTestSteps(PageObjectFactory page) { _page = page; }
public async Task <T> ClickContinue <T>() where T : PageObject { await Page.ClickOn(ContinueButton); return(PageObjectFactory.CreatePage <T>(Page) as T); }
public UsersSteps(PageObjectFactory page) { _page = page; }
public CheckoutPage ClickContinueButton() { ClickElement(continueButton, nameof(continueButton)); return(PageObjectFactory.CreateCheckoutPage(driver)); }
public T ClickToPageObject <T>(TimeSpan waitBeforeClick, IDictionary <string, object> pageSettings) where T : BasePageObject { Click(waitBeforeClick, TimeSpan.Zero); return(PageObjectFactory.GetPageObjectByType <T>(_pageElement.WebDriver, pageSettings)); }
public ShoppingCartSteps(PageObjectFactory page) { _page = page; }
public T ClickToPageObject <T>(TimeSpan waitBeforeClick) where T : BasePageObject { Click(waitBeforeClick, TimeSpan.Zero); return(PageObjectFactory.GetPageObjectByType <T>(_pageElement.WebDriver)); }
public void Initialize <T>() where T : IPage { IPageObjectFactory pageObjectFactory = new PageObjectFactory(); currentPage = pageObjectFactory.Create <T>(Driver); }
public void InitElements_ArgumentNullException(PageObjectFactory pageObjectFactory) { new Action(() => pageObjectFactory.InitElements(null)).Should() .Throw <ArgumentNullException>(); }
public TransactionSummaryPage ClickPurchaseButton() { ClickElement(purchaseButton, nameof(purchaseButton)); return(PageObjectFactory.CreateTransactionSummaryPage(driver)); }
public CartPage GoToCartPage() { ClickElement(cart, nameof(cart)); return(PageObjectFactory.CreateCartPage(driver)); }
public TestPageObject(IWebDriver webDriver, PageObjectFactory pageObjectFactory) { _webDriver = webDriver; _pageObjectFactory = pageObjectFactory; }
public async Task <AssignPage> ClickContinue() { await Page.ClickOn(ContinueButton); return(PageObjectFactory.CreatePage <AssignPage>(Page)); }
public void ShouldBeAbleToCreateEmptyPageObject() { var emptyPageObject = PageObjectFactory.GetPageObjectByType <EmptyPageObject>(GetWebDriverMock()); Assert.AreEqual(emptyPageObject.GetType(), typeof(EmptyPageObject)); }