/// <summary> /// Verfiy the materialize fields state when the page is loaded /// </summary> /// <param name="inputGroupContainer">The materialize input group container that is used to get the elements that need to be checked</param> /// <param name="testData">The test data to be used for the comparision</param> /// <param name="updateCssTo">The css style required, the field will have it's css updated to this type</param> public static void VerifyMaterializeInputField(IWebElement inputGroupContainer, MaterializeInputGroup testData, FieldCss updateCssTo, string validationType = null) { IWebElement iconElement = null; IWebElement inputElement = null; IWebElement labelElement = null; IWebElement validationLabelElement = null; string fieldName = null; GetMaterializeWebElements(inputGroupContainer, ref iconElement, ref inputElement, ref labelElement, ref validationLabelElement, ref fieldName, testData.FieldInputType); testData.UpdateCssForIcon(testData.IconClasses, updateCssTo).MatchesActualCss(iconElement.GetAttribute("class"), $"{fieldName} Icon Classes"); testData.IconText.MatchesActual(iconElement.Text, $"{fieldName} Icon Text"); if (testData.InputClasses != null) { testData.UpdateCssForInput(testData.InputClasses, updateCssTo).MatchesActualCss(inputElement.GetAttribute("class"), $"{fieldName} Input Classes"); } if (testData.InputText != null) { testData.InputText.MatchesActual(testData.FieldInputType.Equals("textarea", StringComparison.OrdinalIgnoreCase) ? inputElement.GetAttribute("value") : inputElement.GetAttribute("value"), $"{fieldName} Input Text"); } if (testData.LabelClasses != null) { testData.UpdateCssForLabel(testData.LabelClasses, updateCssTo).MatchesActualCss(labelElement.GetAttribute("class"), $"{fieldName} Label Classes"); } if (testData.LabelText != null) { testData.LabelText.MatchesActual(labelElement.Text, $"{fieldName} Label Text"); } // Return here is there's no validation label associated with the control if (null == validationLabelElement) { return; } testData.UpdateCssForValidationLabel(testData.ValidationLabelClasses, updateCssTo).MatchesActualCss(validationLabelElement.GetAttribute("class"), $"{fieldName} Validation Label Classes"); // We only check the validation if it's displayed var validationElement = validationLabelElement.FindElement(By.TagName("span")); if (validationElement != null && validationType != null) { testData.ValidationLabelText[validationType].MatchesActual(validationElement.GetAttribute("textContent"), $"{fieldName} Validation Label Text"); } }
/// <summary> /// Gets the materialize input field for the input group /// This will allow us to update the input /// </summary> /// <param name="inputGroupContainer"></param> /// <param name="testData"></param> /// <returns></returns> public static IWebElement GetMaterializeInputField(IWebElement inputGroupContainer, MaterializeInputGroup testData) { return(inputGroupContainer.FindElement(By.TagName(testData.FieldInputType))); }