private void SetDetailTabData(DetailTabData detailTabData, bool isSponsorshipChildItem) { ClickTab("Details"); SetReactCheckBoxState(_chkIsAutoGeneratedName, detailTabData.AutoGenerateName); if (!detailTabData.AutoGenerateName) { ClearInputAndTypeValue(_txtPlacementName, detailTabData.Name); } if (!isSponsorshipChildItem) { ClearSelectedValueFromReactDropdown(_ddlPublisher); SelectSingleValueFromReactDropdownByText(_ddlPublisher, detailTabData.Publisher); } ClearSelectedValueFromReactDropdown(_ddlSite); SelectSingleValueFromReactDropdownByText(_ddlSite, detailTabData.Site); if (!string.IsNullOrWhiteSpace(detailTabData.Supplier)) { SelectSingleValueFromReactDropdownByText(_ddlSupplier, detailTabData.Supplier); } SelectSingleValueFromReactDropdownByText(_ddlLocation, detailTabData.Location); SelectSingleValueFromReactDropdownByText(_ddlFormat, detailTabData.Format); //// TODO - Handle Width and Height as we need to additionally check whether element is disabled if (!string.IsNullOrWhiteSpace(detailTabData.CreativeType)) { SelectSingleValueFromReactDropdownByText(_ddlCreativeType, detailTabData.CreativeType); } if (detailTabData.Devices != null && detailTabData.Devices.Any()) { RemoveAllItemsFromMultiSelect(_ddlDevices); SelectMultipleValuesFromReactDropdownByText(_ddlDevices, detailTabData.Devices); } if (!string.IsNullOrWhiteSpace(detailTabData.LandingPage)) { ClearInputAndTypeValue(_txtLandingPage, detailTabData.LandingPage); } if (!string.IsNullOrWhiteSpace(detailTabData.TargetingComments)) { ClearInputAndTypeValue(_txtTargetingComments, detailTabData.TargetingComments); } if (!string.IsNullOrWhiteSpace(detailTabData.FrequencyCapImpressions)) { ClearInputAndTypeValue(_txtFrequencyCapImpressions, detailTabData.FrequencyCapImpressions); } if (!string.IsNullOrWhiteSpace(detailTabData.FrequencyCapDuration)) { ClearInputAndTypeValue(_txtFrequencyCapDuration, detailTabData.FrequencyCapDuration); } if (!string.IsNullOrWhiteSpace(detailTabData.FrequencyCapInterval)) { SelectSingleValueFromReactDropdownByText(_ddlFrequencyCapInterval, detailTabData.FrequencyCapInterval); } if (string.IsNullOrWhiteSpace(detailTabData.StartDate)) { detailTabData.StartDate = GetTodaysDate(); } else if (detailTabData.StartDate == "dayAfterCurrentDate") { detailTabData.StartDate = GetFutureDate(GetTodaysDate(), 1, "Days"); } if (string.IsNullOrWhiteSpace(detailTabData.EndDate)) { detailTabData.EndDate = GetFutureDate(detailTabData.StartDate, 3); } EnterDate(_txtStartDate, detailTabData.StartDate); EnterDate(_txtEndDate, detailTabData.EndDate); var placementStartDate = DateTime.ParseExact(detailTabData.StartDate, "dd MMM yyyy", CultureInfo.InvariantCulture).ToString("yyyyMM"); FeatureContext.Add(detailTabData.Name, placementStartDate); if (!string.IsNullOrWhiteSpace(detailTabData.ClientAgreement)) { SelectSingleValueFromReactDropdownByText(_ddlClientAgreement, detailTabData.ClientAgreement); } if (!string.IsNullOrWhiteSpace(detailTabData.Currency)) { SelectSingleValueFromReactDropdownByText(_ddlCurrency, detailTabData.Currency); } if (!string.IsNullOrWhiteSpace(detailTabData.ExchangeRate)) { Wait.Until(driver => _txtExchangeRate.GetAttribute("disabled") == null); ClearInputAndTypeValue(_txtExchangeRate, detailTabData.ExchangeRate); } if (!string.IsNullOrWhiteSpace(detailTabData.PurchaseType)) { SelectSingleValueFromReactDropdownByText(_ddlPurchaseType, detailTabData.PurchaseType); } if (detailTabData.IsDefaultRate) { Assert.AreEqual(_txtBaseRate.GetAttribute("value"), detailTabData.BaseRate); Assert.AreEqual(_txtRatecardRate.GetAttribute("value"), detailTabData.RatecardRate); } ValidateAutoCalculatedField(detailTabData); ValidateReverseCalculateFromNetFields(detailTabData); if (!string.IsNullOrWhiteSpace(detailTabData.ShareOfVoice)) { ClearInputAndTypeValue(_txtSov, detailTabData.ShareOfVoice); } if (detailTabData.CustomFields != null && detailTabData.CustomFields.Any()) { foreach (var customFieldData in detailTabData.CustomFields) { var customFieldElement = FindElementByXPath($"//label[text() = '{customFieldData.Name}']"); SetCustomFieldElement(customFieldElement, customFieldData.Type, customFieldData.Values); } } }