Background: Automating Sitecore Content Editor. Tools Used:SpecFlow,Selenium C#
Issue:Unable to send the Selenium WebDriver instance between SpecFlow Scenarios.
Eg: Helper Class - Creates the instance of Webdriver for every scenario. UtlilityClass - Utility Class inherits from Helper Class .Has Login Scenario which is used by other scenarios in different feature files. Multicolumn Class - Contains scenario - Runs Login functionality from Utility Class and does further steps .
******************CODE******************************* ****Helper Class has only WebDriver and creation of Browser instance ****
Helper Class { protected WebDriverHelper WebDriver { get; private set; } [BeforeScenario] public void BeforeScenario(){WebDriver = WebDriverHelper.Create("SiteCoreAdminPage");}
[AfterScenario] public void AfterScenario(){WebDriver.Dispose(); } }
UtilityFeature-
Scenario:Login Functionality Given Login
UtilityDefinitionFile
Utility Class has all the common functions to be utilised across scenarios. UtilityClass:Helper Class { public void Login() { /Perform all activities to log in/ } }
Multicolumn Feature File-
Scenario: Given Login Then CreateMulticolumnPage
Multicolumn Definition File-
Multicolumn:HelperClass { public void CreateMulticolumnPage() { /*When code reaches this point , another instance of Webdriver is created.I don't want the instance to be created but instead continue the actions in already existing instance of webdriver. } } ****************CODE ENDS********************