protected StepDefinitionBase(IWebDriverFactory f)
 {
     if (WebDriverManager == null)
     {
         ConfigurationSectionHandler webDriverConfig =
             (ConfigurationSectionHandler)ConfigurationManager.GetSection("webDriverConfig");
         WebDriverManager = new WebDriverManager(webDriverConfig,f);
     }
 }
Esempio n. 2
0
 public void NavigateToWikipediaPage()
 {
     Console.WriteLine($"Open: {WikipediaSearchPageObject.VIKIPEDIA_URL}");
     WebDriverManager.NavigateToUrl(WikipediaSearchPageObject.VIKIPEDIA_URL);
 }
 public void HoverOnTransportMenuItem()
 {
     WebDriverManager.HoverOver(MainPage.TransportMenuItem);
 }
Esempio n. 4
0
        public virtual async Task InitializeAsync(Type?contextType = null)
        {
            contextType ??= GetType();

            Task?waitForInitialization = null;

            lock (@lock)
            {
                if (_status == ContextStatus.Initialized)
                {
                    return;
                }

                else if (_status == ContextStatus.Initializing)
                {
                    waitForInitialization = _initializeEvent.ToTask((int)BarrierManager.WaitHandleTimeout.TotalMilliseconds);
                }
                else
                {
                    _status = ContextStatus.Initializing;
                }
            }

            if (waitForInitialization != null)
            {
                await waitForInitialization;
                return;
            }

            DriverContextAttribute?useDriverAttr = contextType.GetCustomAttribute <DriverContextAttribute>(true);

            if (useDriverAttr != null)
            {
                _driverName = useDriverAttr.DriverName;
                _navigate   = !useDriverAttr.DisableNavigation;
                if (useDriverAttr.WaitForBarrier)
                {
                    _webDriver = await WebDriverManager.Instance.WaitForDriver(_driverName);
                }
                else
                {
                    int references = useDriverAttr.MaxReference <= 0 ? GetDriverReferences(_driverName, contextType) : useDriverAttr.MaxReference;
                    _webDriver        = WebDriverManager.Instance.CreateDriver(_driverType, _driverName, references);
                    _useDriverBarrier = true;
                    _webDriver.Manage().Window.Maximize();
                }
            }
            else
            {
                _webDriver = WebDriverManager.CreateDriver(_driverType);
                _webDriver.Manage().Window.Maximize();
            }

            var barrierDefAttr = contextType.GetCustomAttribute <BarrierAttribute>();

            if (barrierDefAttr != null)
            {
                _barrier = BarrierManager.Manager.GetWaitHandler(barrierDefAttr.BarrierName ?? contextType.Name);
            }

            var barriersAttr = contextType.GetCustomAttributes <WaitForBarrierAttribute>();

            if (barriersAttr != null && barriersAttr.Any())
            {
                await Task.WhenAll(barriersAttr.Select(x => BarrierManager.Manager.Wait(x.BarrierName)));
            }

            _status = ContextStatus.Initialized;
            _initializeEvent.Set();
        }
Esempio n. 5
0
 public StepDefinition1PageObjects(WebDriverManager webDriverManager)
 {
     _webDriverManager = webDriverManager;
 }
Esempio n. 6
0
 public WorkPage(WebDriverManager webDriverManager) : base(webDriverManager)
 {
     PageFactory.InitElements(webDriverManager.WebDriver, this);
     _webDriverManager = webDriverManager;
 }
        public void SetupInfrastructure()
        {
            IConfiguration config = new ConfigurationBuilder()
                                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                                    .AddEnvironmentVariables()
                                    .Build();

            var configFactory = new ConfigurationFactory(config);

            ObjectContainer.RegisterInstanceAs(configFactory.Create <MovieLoggerConfig>());
            ObjectContainer.RegisterInstanceAs(configFactory.Create <ImageLoggingConfig>());

            Register(new FileManager(new DatetimeManager(() => DateTime.Now)));
            ImageLogging = new ImageLogging(ObjectContainer.Resolve <ImageLoggingConfig>());
            MovieLogger  = new MovieLogger(FileManager, ObjectContainer.Resolve <MovieLoggerConfig>(), Metadata);

            ObjectContainer.RegisterInstanceAs(ImageLogging);
            ObjectContainer.RegisterInstanceAs(MovieLogger);

            var logger = new DefaultLogger(new DirectoryInfo(Environment.CurrentDirectory));

            Register((PossumLabs.Specflow.Core.Logging.ILog)logger);
            Register <ElementFactory>(new ElementFactory());
            Register <XpathProvider>(new XpathProvider());
            Register <SelectorFactory>(new SelectorFactory(ElementFactory, XpathProvider).UseBootstrap());
            Register(new PossumLabs.Specflow.Selenium.WebDriverManager(
                         this.Interpeter,
                         this.ObjectFactory,
                         new SeleniumGridConfiguration()));


            FileManager.Initialize(FeatureContext.FeatureInfo.Title, ScenarioContext.ScenarioInfo.Title, null /*Specflow limitation*/);

            var templateManager = new PossumLabs.Specflow.Core.Variables.TemplateManager();

            templateManager.Initialize(Assembly.GetExecutingAssembly());
            Register(templateManager);

            Log.Message($"feature: {FeatureContext.FeatureInfo.Title} scenario: {ScenarioContext.ScenarioInfo.Title} \n" +
                        $"Tags: {FeatureContext.FeatureInfo.Tags.LogFormat()} {ScenarioContext.ScenarioInfo.Tags.LogFormat()}");

            System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

            WebDriverManager.Initialize(BuildDriver);
            WebDriverManager.WebDriverFactory = () =>
            {
                var options = new ChromeOptions();
                // https://stackoverflow.com/questions/22322596/selenium-error-the-http-request-to-the-remote-webdriver-timed-out-after-60-sec?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
                options.AddArgument("no-sandbox"); //might be a fix :/
                options.AddArgument("disable-popup-blocking");
                options.AddArgument("disable-gpu");
                options.AddArgument("disable-extensions");
                options.AddArgument("disable-dev-shm-usage");

                options.AddAdditionalCapability("username", WebDriverManager.SeleniumGridConfiguration.Username, true);
                options.AddAdditionalCapability("accessKey", WebDriverManager.SeleniumGridConfiguration.AccessKey, true);

                //TODO: Config value
                var driver = new RemoteWebDriver(new Uri(WebDriverManager.SeleniumGridConfiguration.Url), options.ToCapabilities(), TimeSpan.FromSeconds(180));
                //do not change this, the site is a bloody nightmare with overlaying buttons etc.
                driver.Manage().Window.Size = WebDriverManager.DefaultSize;
                var allowsDetection = driver as IAllowsFileDetection;
                if (allowsDetection != null)
                {
                    allowsDetection.FileDetector = new LocalFileDetector();
                }
                return(driver);
            };
        }
        public void TearDown()

        {
            WebDriverManager.QuitDriver(driver);
        }
Esempio n. 9
0
 public static void ClickOnAlreadyHaveAccountLink(IWebDriver driver)
 {
     WebDriverManager.GetElementByLinkText(driver, Returntologinlink).Click();
     WebDriverManager.WaitUntilNextPageIsLoaded(driver, Url);
 }
 public void CreateAccountWithInValidCredentials()
 {
     CreateAccountPage.CreateAccount(driver, CreateAccountPage.GetRandomEmail("Invalid"), CreateAccountPage.GetRandomPassword(6));
     WebDriverManager.WaitForElementById(driver, CreateAccountPage.CreateAccountErrorMessage);
     Assert.IsTrue(WebDriverManager.IsElementPresent(driver, CreateAccountPage.CreateAccountErrorMessage));
 }
 public void ReturnToLoginPage()
 {
     CreateAccountPage.ClickOnAlreadyHaveAccountLink(driver);
     Assert.IsTrue(WebDriverManager.CurrentUrl(driver).Equals(LoginPage.Url));
 }
 public void CreateAccountWithValidCredentials()
 {
     CreateAccountPage.CreateAccount(driver, CreateAccountPage.GetRandomEmail("Valid"), CreateAccountPage.GetRandomPassword(6));
     Assert.IsTrue(WebDriverManager.CurrentUrl(driver).Equals(SellCarPage.Url));
 }
 public void Setup()
 {
     driver = WebDriverManager.InitializeDriver();
     WebDriverManager.NavigateToPage(driver, CreateAccountPage.Url);
 }
Esempio n. 14
0
 public HomePage(WebDriverManager webDriverManager)
 {
     PageFactory.InitElements(webDriverManager.WebDriver, this);
     _webDriverManager = webDriverManager;
 }
Esempio n. 15
0
 public static void Open(String url)
 {
     WebDriverManager.GetWebDriver().Navigate().GoToUrl(url);
 }
Esempio n. 16
0
 public BaseSteps(IWebDriver driver)
 {
     Driver           = driver;
     WebDriverManager = (WebDriverManager)ScenarioContext[DriverContextName];
 }
Esempio n. 17
0
 public static void Close()
 {
     WebDriverManager.CloseWebDriver();
 }
Esempio n. 18
0
 public static void TearDownHook()
 {
     WebDriverManager.StopBrowser();
 }
Esempio n. 19
0
 public virtual string Switch()
 {
     return(WebDriverManager.CurrentSwitchTo(this.FramePath));
 }
Esempio n. 20
0
 public void Test1()
 {
     WebDriverManager.CloseDriver();
 }