public void Start <TPage>(MainFlowData mainFlowData, Action <TPage> action) where TPage : UIPage { using (var driver = new WebDriverWrapper()) { AddRunningDriver(driver); driver.BrowserStart(); try { mainFlowData.WindowsHandlerData.StartPageId = driver.WebDriver.CurrentWindowHandle; var page = UIPage.CreatePage <TPage>(driver); action(page); } catch (Exception ex) { var screenshotFile = driver.TakeScreenshot(TestContext.CurrentContext.Test.MethodName); TestContext.AddTestAttachment(screenshotFile); throw ex; } finally { RemoveRunningDriver(driver); } } }
public static RisksTabPage AddNewVessel(this SearchRiskPage page, MainFlowData data) { return(page .ClickAddNew_Button(data.WindowsHandlerData) .SetVesselName_TextField(data.VesselData.VesselName) .SetCertificateName_TextField(data.VesselData.CertificateName) .SetImoNumber_TextField(data.VesselData.ImoNumber) .SetDistinctIdOrCallSign_TextField(data.VesselData.DistinctIdOrCallSign) .SelectType_DropdownList(data.VesselData.Type) .SetYearBuild_TextField(data.VesselData.YearOfBuilt) .SelecFlag_DropdownList(data.VesselData.Flag) .SetTonnage_TextField(data.VesselData.Tonnage) .SetInlandTonnage_TextField(data.VesselData.InlandTonnage) .SelectCertifyingAuthority_DropdownList(data.VesselData.CertificateAuthority) .SelectClass_DropdownList(data.VesselData.Class) .SetPassangerNo_textField(data.VesselData.PassangerNo) .SetCrewNo_TextField(data.VesselData.CrewNo) .SelectPrivateUsage_RadioButton(data.VesselData.IsPrivateUse) .SelectVesselTariffGroup_DropdownList(data.VesselData.VesselTariffGroup) .SetHullAndMachineryValue_TextField(data.VesselData.HullAndMachineryValue) .SelectHullAndMachineryCurrency_DropdownList(data.VesselData.HullAndMachineryCurrency) .SetLenghtOveral_TextField(data.VesselData.LenghtOveral) .SetEngineHorsePower_TextField(data.VesselData.EngineHorsePower) .SetTradeMarkAndEngineModelAndNumber_TextField(data.VesselData.TradeMarkAndEngineModelAndNumber) .SetEngineNumber_TextField(data.VesselData.EngineNumber) .SelectTradingArea_DropdownList(data.VesselData.TradingArea) .SelectPortOfRegistry_DropdownList(data.VesselData.PortOfRegistry) .SelectTradesOutsidePort_Radiobutton(data.VesselData.TradesOutsidePort) .SelectDomestic_RadioButton(data.VesselData.Domestic) .SetOtherMaterialFacts_TextArea(data.VesselData.OtherMaterialFacts) .SetAncillaryCraft_TextArea(data.VesselData.AncillaryCraft) .SetComments_TextArea(data.VesselData.Comments) .ClickSaveAndClose_Button(data.WindowsHandlerData) .WaitForAddedVesselDisplayed(data.VesselData)); }
//TODO remove after switch between frames issue will be resolved public static MainWorkflowPage SaveQuoteDetails(this QuoteDetailsPage page, MainFlowData data) { return(page .SelectSave_RadioButton() .CickSubmit_Button() .WaitForQuoteDataSaved(data.WindowsHandlerData)); }
public PremiumsTabPage ClickSave_Button(MainFlowData data) { this.WebDriverWrapper.FindAndClick(saveButton, How.XPath); this.WebDriverWrapper.BrowserRestart(data.FlowURL); return(new PremiumsTabPage(this)); }
public static CoversTabPage RemoveCoversExcept(this CoversTabPage page, MainFlowData data, string[] coversToLeft) { page.GetCoversInfo(data); data.CoversData.SetCoversToLeft(coversToLeft); return(page .LeaveCoversByName(data)); }
public PremiumsTabPage ClickSave_Button2(MainFlowData data) { this.WebDriverWrapper.FindAndClick(saveButton, How.XPath); this.WebDriverWrapper.WebDriver.SwitchTo().Window(this.WebDriverWrapper.WebDriver.WindowHandles.Last()); return(new PremiumsTabPage(this)); }
public static RisksTabPage SelectFirsRiskFromList(this SearchRiskPage page, MainFlowData data) { return(page .Click_FirstCheckBox() .ClickAddSelected_Button(data.WindowsHandlerData) //.WaitForAddedVesselDisplayed(data.VesselData) ); }
public CoversTabPage LeaveCoversByName(MainFlowData data) { var coversToRemove = data.CoversData.Description.Where(i => !data.CoversData.CoversToLeft.Any(e => i.Contains(e))); foreach (var cover in coversToRemove) { ClickRemoveByCoverName_Button(cover, data); } return(this); }
public static SearchRiskPage PerformVesselSearch(this RisksTabPage page, MainFlowData data) { return(page .ClickAdd_Button(data.WindowsHandlerData) .SetVesselName_TextField(data.VesselSearchData.VesselName) .SetRiskReference_TextField(data.VesselSearchData.RiskReference) .SetMemberName_TextField(data.VesselSearchData.MemberName) .SetImoNumber_TextField(data.VesselSearchData.ImoNumber) .SetMemberNumber_TextField(data.VesselSearchData.MemberNumber) .SelectVesselTariffGroup_DropdownList(data.VesselSearchData.VesselTariffGroup) .SetVesselNumber_TextField(data.VesselSearchData.VesselNumber) .SelectMemberDomicile_DropdownList(data.VesselSearchData.MemberDomicile) .ClickSearch_Button()); }
public static MainWorkflowPage CreateVesselRiskQuote(this StartPage page, MainFlowData data) { return(page .ClickCreateQuote_Button(data.WindowsHandlerData) .SelectRiskType_DropdownList(data.QuoteCreationData.RiskType) .SelectProductType_DropdownList(data.QuoteCreationData.ProductType) .SelectPolicyBilling_DropdownList(data.QuoteCreationData.PolicyBilling) .SelectTemplateType_DropdownList(data.QuoteCreationData.TemplateType) .SelectTemplateCategory_DropdownList(data.QuoteCreationData.TemplateCategory) .SelectTemplateName_DropdownList(data.QuoteCreationData.TemplateName) .SetFromDate_TextFiedl(data.QuoteCreationData.FromDate) .SetToDate_TextFiedl(data.QuoteCreationData.ToDate) .SelectTBC_RadioButtons(data.QuoteCreationData.IsDateToBeConfirmed) .ClickSubmit_Button(data.WindowsHandlerData)); }
private CoversTabPage ClickRemoveByCoverName_Button(string coverToRemove, MainFlowData data) { //TODO Refactor WebDriverWrapper.WebDriver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(5); try { this.WebDriverWrapper.FindAndClick($"//span[text()='{coverToRemove}']/../following-sibling::td/input[@value='Remove']", How.XPath); IAlert alert = this.WebDriverWrapper.WebDriver.SwitchTo().Alert(); var t = alert.Text; alert.Accept(); } catch (WebDriverTimeoutException ex) { } finally { WebDriverWrapper.WebDriver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(300); } return(this); }
public static QuoteDetailsPage SelectNewMember(this QuoteDetailsPage page, MainFlowData data) { return(page .ClickSelectMember_Hyperlink(data.WindowsHandlerData) .SetMemberSearchName(data.MemberData.Name) .SetMemberSearchReference(data.MemberData.Reference) .ClickSearch_Button() .ClickAddNew_Button(data.WindowsHandlerData) .SetPartyRole_TextField(data.MemberData.PartyRole) .SetFirstName_TextField(data.MemberData.FirstName) .SetLastNameOrOrganisationName_TextField(data.MemberData.LastNameOrOrganisationName) .SelectDomicilie_DropdownList(data.MemberData.Domicilie) .SelectGroup_DropdownList(data.MemberData.Group) .SetAddressName_TextField(data.MemberData.AddressName) .SetStreet1_TextField(data.MemberData.Street1) .SetStreet2_TextField(data.MemberData.Street2) .SetCity_TextField(data.MemberData.City) .SelectCountry_DropdownList(data.MemberData.Country) .SetPostalCode_TextField(data.MemberData.PostalCode) .SetPhone_TextField(data.MemberData.Phone) .SetFax_TextField(data.MemberData.Fax) .SetEmail_TextField(data.MemberData.Email) .ClickSave_Button(data.WindowsHandlerData)); }
public static QuoteReinsurancePage ManageInvoiceDetails(this BindQuoteSelectDocumentationPage page, MainFlowData data) { return(page .WaitForBindQuoteSelectDocumentationPageDisplayed() .SelectFormTradingCertificate_RadioButton(data.BindQuoteSelectDocumentationData.IsShortFormTradingCertificate) .SelectLongFormCertificate_DropdownList(data.BindQuoteSelectDocumentationData.LongFormCertificate) .SelectInvoice_DropdownList(data.BindQuoteSelectDocumentationData.Invoice) .SelectIvoiceAddressee_DropdownList(data.BindQuoteSelectDocumentationData.InvoiceAddressee) .SelectInvoiceFormat_DropdownList(data.BindQuoteSelectDocumentationData.InvoiceFormat) .SelectFirsAddress_DropdownList(data.BindQuoteSelectDocumentationData.InvoiceAddressee) .SelectPrintMemberAddress_RadioButton(data.BindQuoteSelectDocumentationData.PrintMemberAddress) .SelectFirstSendToBrokerContact_DropdownList() .SetPremiumComments_TextArea(data.BindQuoteSelectDocumentationData.Comments) .SelectContinue_RadioButton() .ClickSubmit_Button()); }
public static CoversTabPage GetCoversInfo(this CoversTabPage page, MainFlowData data) { return(page .GetAttachedCoverList(data.CoversData)); }
public static SelectBrokerToAddToPolicyPage PerformBrokerSearch(this BrokersTabPage page, MainFlowData data) { return(page .ClickAdd_Button(data.WindowsHandlerData) .SetFullName_TextField(data.BrokerData.FullName) .SetBrokerReference_TextField(data.BrokerData.Reference) .ClickSearch_Button()); }
public static BrokersTabPage AddBrokerToPolicy(this BrokersTabPage page, MainFlowData data) { return(page .PerformBrokerSearch(data) .ClickFirstLink_Button(data.WindowsHandlerData)); }
public void Test() { var mainflowData = new MainFlowData(); Start <StartPage>(mainflowData, page => page //.SwitchToQuoteDetailPage(mainflowData) .SwitchToBindQuteSelectDocumentationPage(mainflowData) //.NavigateToCoversTab() ////For now, implemented just removing unnecessary Covers //.RemoveCoversExcept(mainflowData, new string[] //{ // "Yacht Legal Costs Cover" //}) //.ResolveSwitchBetweenWindowIssue(mainflowData) //.NavigateToPremiumsTab() //.ManagePremiumsFinancialData(mainflowData.SetEditFinancialData( // new EditFinancialDataData // { // Currency = "CANADIAN DOLLARS (CAD)", // //ApplicableTax = "AUSTRALIA", // //Comments = "Comments", // //FlagAtRenewals = true, // //RenewalComments = "Renewal comments" // } //)) //.ManageInstallmentsAndCommissionsData(mainflowData.SetInstalmentsAndCommissionData( // new InstalmentsAndCommissionData // { // CommissionPercentage = "10", // CallType = "Fixed Premium", // PremiumType = "Annual" // })) //.ManageSetAndUpdatePremiumData(mainflowData.SetSetUpdatePremiumsData( // new SetUpdatePremiumsData // { // Ammount = "1000" // } // )) //.NavigateToPremiumIstalmentsTab() //.SetInstalmentDetails(mainflowData.SetInstalmentsDetailsData( // new InstalmentsDetailsData // { // IsInstalmentPatternBespoke = false, // InstalmentsPattern = "100%" // })) //.IssueQuote() .ManageInvoiceDetails(mainflowData.SetBindQuoteSelectDocumentationData( new BindQuoteSelectDocumentationData { IsShortFormTradingCertificate = true, LongFormCertificate = "Singular", Invoice = "Singular", InvoiceAddressee = "Member", InvoiceFormat = "Include Commission", Comments = "Some comments" } )) .ManageQuoteReinsurance(mainflowData.SetBindQuoteAddPatternData( new BindQuoteAddPatternData { Comments = "Some comments" } )) ); }
public void SmokeTest_NewMember_NewParty_ExistingVessel() { var mainflowData = new MainFlowData(); Start <StartPage>(mainflowData, page => page #region Create application .CreateVesselRiskQuote(mainflowData.SetQuoteCreationData(new QuoteCreationData { RiskType = "Vessel Risk", ProductType = "YACHT", PolicyBilling = "Standard", TemplateType = "Yacht", TemplateCategory = "Yacht", TemplateName = "Yacht Liability Insurance", //FromDate = "01/01/2018", //ToDate = "31/12/2018", IsDateToBeConfirmed = false })) .WaitToQuotePageOpen(mainflowData.WindowsHandlerData) #endregion #region Set data for Quote Details tab //Also available method SelectNewMember() or SelectExistingMember() .SelectNewMember(mainflowData.SetMemberData(new MemberData { ////Commented fields not mandatory, uncomment particular property if you want to populate it Reference = "69937", //FirstName = "SigmaMember2109_02", LastNameOrOrganisationName = "SigmaMember0210_06", Domicilie = "ARUBA", Group = "A10 - ACAV", AddressName = "AN", Street1 = "S1", Street2 = "S2", City = "City", PostalCode = "PC", Country = "AZORES", Phone = "12345", Fax = "67890", Email = "*****@*****.**" })) .ManageQuoteDetails(mainflowData.SetQuoteDetailsTabData(new QuoteDetailsTabData { ////Commented fields not mandatory, uncomment particular property if you want to populate it //MemberAssuredCapacities = "Crew Manager", IsClearMemberCapacities = false, EntryType = "Charterers Liability", QuoteType = "Quotation", //Underwriter = "Janie Welsh", IsSeparateCommissionNote = true, //ValidTo = "01/01/2019", //PolicyCondition = "Watersports Exclusion", IsClearPolicyConditions = true, TradingLimitsStandardText = "CANADA TRADE" })) .SaveQuoteDetails(mainflowData) .GetQuoteDetails(mainflowData.QuotePolicyData) #endregion #region Set data for Risks tab .NavidateToRisksTab() ////Also available method: //.AddExistingVessel() - use instead PerformVesselSearch() and AddNewVessel() methods .AddExistingVessel(mainflowData.SetVesselSearchData(new VesselSearchData { VesselName = "Vessel" })) #endregion #region Set data for Party tab ////Uncoment this set of code to manage Associated parties ////Commented fields not mandatory, please uncomment if you want to populate them //.NavigateToAssociatedPartyTab() ////Available AddNewParty() and AddExistingParty() methods //.AddNewParty(mainflowData // .SetPartySearchData( // new PartySearchData // { // Ref = "26448" // }).SetPartyData( // new PartyData // { // PartyRole = "Joint Assured", // //FirstName = "First name", // LastNameOrOrganisationName = "SigmaParty2709_01", // Description = "Description", // //FromDate = "01/02/2018", // //ToDate = "31/12/2018", // //Here you could select multiple capacities // //Capacity = new string[] { "Agent", "Additional Assured" }, // //Clause = "Crew Managers Clause", // AddressName = "Address name", // Street1 = "Street1", // Street2 = "Street2", // City = "City", // PostalCode = "Postal code", // Country = "ARUBA", // Phone = "Phone", // Fax = "Fax", // Email = "*****@*****.**" // } // )) //===================================================================== ////Uncoment this code to Add existing party //.AddExistingParty(mainflowData.SetPartySearchData( // new PartySearchData //{ // Ref = "26448", //}).SetExistingPartyDetailsData( // new ExistingPartyDetailsData //{ // Description = "Description", // Role = "Joint Assured", // FromDate = "01/01/2018", // ToDate = "01/12/2018", // Capacity = "Agent", // Clause = "Crew Managers Clause" //} //)) #endregion #region Set data for Broker tab .NavigateToBrokersTab() .AddBrokerToPolicy(mainflowData.SetBrokerData( new BrokerData { //FullName = "Broker", Reference = "2189" } )) #endregion #region Set data for Cover tab .NavigateToCoversTab() //For now, implemented just removing unnecessary Covers .RemoveCoversExcept(mainflowData, new string[] { "Yacht Legal Costs Cover" }) #endregion #region Set data for Premiums tab .NavigateToPremiumsTab() .ManagePremiumsFinancialData(mainflowData.SetEditFinancialData( new EditFinancialDataData { ////Commented fields not mandatory, please uncomment if you want to populate them Currency = "CANADIAN DOLLARS (CAD)", //ApplicableTax = "AUSTRALIA", //Comments = "Comments", //FlagAtRenewals = true, //RenewalComments = "Renewal comments" } )) .ManageInstallmentsAndCommissionsData(mainflowData.SetInstalmentsAndCommissionData( new InstalmentsAndCommissionData { CommissionPercentage = "10", CallType = "Fixed Premium", PremiumType = "Annual" })) .ManageSetAndUpdatePremiumData(mainflowData.SetSetUpdatePremiumsData( new SetUpdatePremiumsData { Ammount = "1000" } )) #endregion #region Set data for Premium Instalments tab .NavigateToPremiumIstalmentsTab() .SetInstalmentDetails(mainflowData.SetInstalmentsDetailsData( new InstalmentsDetailsData { IsInstalmentPatternBespoke = false, InstalmentsPattern = "100%" })) #endregion #region Issue and Bind quote .IssueQuote() .PerformQuickSearch_Quote(mainflowData.QuotePolicyData.QuoteReference, mainflowData) .GetQuoteDetails(mainflowData.QuotePolicyData) .BindQuote(mainflowData) .ManageInvoiceDetails(mainflowData.SetBindQuoteSelectDocumentationData( new BindQuoteSelectDocumentationData { IsShortFormTradingCertificate = true, LongFormCertificate = "Singular", Invoice = "Singular", InvoiceAddressee = "Member", InvoiceFormat = "Include Commission", Comments = "Some comments" } )) .ManageQuoteReinsurance(mainflowData.SetBindQuoteAddPatternData( new BindQuoteAddPatternData { Comments = "Some comments" } )) .PerformQuickSearch_Policy(mainflowData.QuotePolicyData.QuoteReference, mainflowData) ); #endregion }
public static StartPage ManageQuoteReinsurance(this QuoteReinsurancePage page, MainFlowData data) { return(page .WaitForQuoteReinsurancePageDisplayed() .ClickAdd_Button(data.WindowsHandlerData) .SetComments_TextArea(data.BindQuoteAddPatternData.Comments) .ClickSaveButton(data.WindowsHandlerData) .SelectBind_RadioButton() .ClickSubmitButton()); }
public static QuoteDetailsPage ManageQuoteDetails(this QuoteDetailsPage page, MainFlowData data) { return(page .SelectMemberAssuredCapacities_TextList(data.QuoteDetailsTabData.MemberAssuredCapacities) .SelectClearMemberCapacties_RadioButton(data.QuoteDetailsTabData.IsClearMemberCapacities) .SelectEntryType_DropdownList(data.QuoteDetailsTabData.EntryType) .SelectQuoteType_DropdownList(data.QuoteDetailsTabData.QuoteType) .SelectUnderwriter_DropdownList(data.QuoteDetailsTabData.Underwriter) .SelectSeparateCommisionNote_RadioButton(data.QuoteDetailsTabData.IsSeparateCommissionNote) .SetValidTo_TextField(data.QuoteDetailsTabData.ValidTo) .SelectPolicyConditions_TextList(data.QuoteDetailsTabData.PolicyCondition) .SelectClearPolicyConditions_RadioButton(data.QuoteDetailsTabData.IsClearPolicyConditions) .SetTradingLimitStandardText_DropdownList(data.QuoteDetailsTabData.TradingLimitsStandardText)); }
public static PremimInstalmentsTabPage SetInstalmentDetails(this PremimInstalmentsTabPage page, MainFlowData data) { return(page .ClickEdit_Button(data.WindowsHandlerData) .SelectWillTheInstalmentPatternBeBespoke_RadioButton(data.InstalmentsDetailsData.IsInstalmentPatternBespoke) .SelectInstalmentsPattern_DropdownList(data.InstalmentsDetailsData.InstalmentsPattern) .ClickCkeckValidity_Button() .ClickConfirmAndSave_Button(data.WindowsHandlerData)); }
public static RisksTabPage AddExistingVessel(this RisksTabPage page, MainFlowData data) { return(page .PerformVesselSearch(data) .SelectFirsRiskFromList(data)); }
public static PremiumsTabPage ManageSetAndUpdatePremiumData(this PremiumsTabPage page, MainFlowData data) { //var cover = "Yacht Legal Costs Cover"; //foreach (var cover in data.CoversData.CoversToLeft) //{ page.NavigateToPremiumsTab_RisksPremiumFrame(data) .ClickSetUpdatePremium_Button(data.WindowsHandlerData) //.SelectCover_DropdownList(cover) .SetAmount_TextField(data.SetUpdatePremiumsData.Ammount) .CliclSave_Button(data); //} return(page); }
public static PremiumsTabPage ManageInstallmentsAndCommissionsData(this PremiumsTabPage page, MainFlowData data) { //TODO Remove after solution with switch between widows will be solved return(page.NavigateToPremiumsTab_CoverDetailsFrame(data) .ClickFirsEditCoverLevelDetails_Button(data.WindowsHandlerData) .SetComissionPercentage_TextField(data.InstalmentsAndCommissionData.CommissionPercentage) .SelectCallType_DropdownList(data.InstalmentsAndCommissionData.CallType) .SelectPremiumType_DropdownList(data.InstalmentsAndCommissionData.PremiumType) .ClickUpdateAllCovers_CheckBox() .ClickSave_Button(data)); }
public static PremiumsTabPage ManagePremiumsFinancialData(this PremiumsTabPage page, MainFlowData data) { //TODO: Refactor if possible //Horrable idea, but woks //Reason: Unable switch to previous page page .GetCurrentFlowUrl(data) .ClickEditFinancialData_Button(data.WindowsHandlerData) .WaitForEditFinancialDataPopupPageDisplayed() .SelectCurrency_DropdownList(data.FinancialData.Currency) .SelectApplicationTax_DropdownList(data.FinancialData.ApplicableTax) .SetPremiumComments_TextArea(data.FinancialData.Comments) .SelectFlagAtRenewals_RadioButtons(data.FinancialData.FlagAtRenewals) .SetRenewalComments_TextArea(data.FinancialData.RenewalComments) .ClickSave_Button(data); return(page); }
public PremiumsTabPage CliclSave_Button(MainFlowData data) { this.WebDriverWrapper.FindAndClick(saveButton, How.XPath); return(new PremiumsTabPage(this)); }
public static BindQuoteSelectDocumentationPage BindQuote(this MainWorkflowPage page, MainFlowData data) { return(page .ClickBindQuote_Button(data.WindowsHandlerData) .ClickSubmit_Button(data.WindowsHandlerData) .WaitForQuoteValidationPageDisplayedDisplayed(data.WindowsHandlerData) .SelectContinue_RadioButton() .ClickSubmit_Button()); }
public static PremiumsTabPage NavigateToPremiumsTab_RisksPremiumFrame(this MainWorkflowPage page, MainFlowData data) { return(page.ClickPremiumsTab() //TODO - remove next method .WaitTillRisksPremiumFrameDisplayed(data.WindowsHandlerData)); }
public PremiumsTabPage GetCurrentFlowUrl(MainFlowData data) { data.FlowURL = this.WebDriverWrapper.WebDriver.Url; return(this); }
public static QuoteDetailsPage SelectExistingMember(this QuoteDetailsPage page, MainFlowData data) { return(page .ClickSelectMember_Hyperlink(data.WindowsHandlerData) .SetMemberSearchName(data.MemberData.Name) .SetMemberSearchReference(data.MemberData.Reference) .ClickSearch_Button() .SelectFirstMemberInList(data.WindowsHandlerData)); }