/// <summary> /// Fixture constructor takes driver and configuration /// </summary> /// <param name="webDriver"></param> /// <param name="configuration"></param> public Fixture(IWebDriver webDriver, SeleniumFixtureConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } Initialize(webDriver, configuration); }
private void SetupDependencyInjection(IWebDriver webDriver, SeleniumFixtureConfiguration configuration, DefaultFixtureConfiguration dataConfiguration) { Data = new SimpleFixture.Fixture(dataConfiguration); Data.Return(this); Data.Return(webDriver); Data.Return(configuration.BaseAddress).WhenNamed("BaseAddress"); Data.Return(() => Data.Configuration.Locate <IConstraintHelper>()); Driver = webDriver; Data.Behavior.Add((r, o) => { if (o.GetType().IsValueType || o is string) { return(o); } PageFactory.InitElements(webDriver, o); return(o); }); Data.Behavior.Add(ImportPropertiesOnLocate); _actionProvider = new FixtureActionProvider(this); Data.Return(_actionProvider); if (Configuration.ExecuteValidate) { Data.Behavior.Add(ValidateBehavior); } Data.Export <AutoFillAction>().As <IAutoFillAction>(); Data.Export <AutoFillAsActionProvider>().As <IAutoFillAsActionProvider>(); Data.Export <ClearAction>().As <IClearAction>(); Data.Export <ClickAction>().As <IClickAction>(); Data.Export <DoubleClickAction>().As <IDoubleClickAction>(); Data.Export <FillAction>().As <IFillAction>(); Data.Export <GetAction>().As <IGetAction>(); Data.Export <MouseMoveAction>().As <IMouseMoveAction>(); Data.Export <NavigateAction>().As <INavigateAction>(); Data.Export <SendToAction>().As <ISendToAction>(); Data.Export <SwitchAction>().As <ISwitchToAction>(); Data.Export <TakeScreenshotAction>().As <ITakeScreenshotAction>(); Data.Export <WaitAction>().As <IWaitAction>(); Data.Export <YieldsAction>().As <IYieldsAction>(); }
protected void Initialize(IWebDriver webDriver, SeleniumFixtureConfiguration configuration) { Configuration = configuration; var dataConfiguration = configuration.DataConfiguration; dataConfiguration.Export <ITypePropertySelector>(g => new SeleniumTypePropertySelector(g.Locate <IConstraintHelper>())); dataConfiguration.Export <IPropertySetter>(g => new Impl.PropertySetter()); SetupDependencyInjection(webDriver, configuration, dataConfiguration); if (!(webDriver is IJavaScriptExecutor)) { configuration.AlwaysWaitForAjax = false; } }