Exemple #1
0
        /// <summary>
        /// Sets the value of a Checkbox/TwoOption field on a QuickCreate form.
        /// </summary>
        /// <param name="option">TwoOption Name and Value</param>
        public new BrowserCommandResult <bool> SetValue(TwoOption option)
        {
            return(this.Execute(GetOptions($"Set QuickCreate TwoOption Value: {option.Name}"), driver =>
            {
                if (driver.HasElement(By.XPath(Elements.Xpath[Reference.Entity.CheckboxFieldContainer].Replace("[NAME]", option.Name.ToLower()))))
                {
                    var fieldElement = driver.WaitUntilAvailable(By.XPath(Elements.Xpath[Reference.Entity.CheckboxFieldContainer].Replace("[NAME]", option.Name.ToLower())));

                    if (fieldElement.FindElements(By.TagName("label")).Count > 0)
                    {
                        var label = fieldElement.FindElement(By.TagName("label"));

                        if (label.Text != option.Value)
                        {
                            fieldElement.Click(true);
                        }
                    }
                }
                else
                {
                    throw new InvalidOperationException($"Unable to locate TwoOption field '{option.Name}' on the QuickCreate form. Please verify the TwoOption field exists and try again.");
                }

                return true;
            }));
        }
Exemple #2
0
        /// <summary>
        /// Gets the value of a Checkbox/TwoOption field on a QuickCreate form.
        /// </summary>
        /// <param name="option">The TwoOption field you want to set</param>
        /// <example>xrmBrowser.QuickCreate.GetValue(new TwoOption {Name="creditonhold"});</example>
        public BrowserCommandResult <bool> GetValue(TwoOption option)
        {
            return(this.Execute(GetOptions($"Get QuickCreate Checkbox/TwoOption Value: {option.Name}"), driver =>
            {
                bool check = false;

                if (driver.HasElement(By.XPath(Elements.Xpath[Reference.Entity.CheckboxFieldContainer].Replace("[NAME]", option.Name.ToLower()))))
                {
                    var fieldElement = driver.WaitUntilAvailable(By.XPath(Elements.Xpath[Reference.Entity.CheckboxFieldContainer].Replace("[NAME]", option.Name.ToLower())));
                    var select = fieldElement;
                    var text = "";


                    if (fieldElement.FindElements(By.TagName("label")).Count > 0)
                    {
                        var label = fieldElement.FindElement(By.TagName("label"));
                        text = label.Text;
                    }

                    if (fieldElement.TagName != "select")
                    {
                        select = fieldElement.FindElement(By.TagName("select"));
                    }

                    var options = select.FindElements(By.TagName("option"));

                    foreach (var op in options)
                    {
                        if (op.Text.ToLower() == text.ToLower() || op.GetAttribute("title").ToLower() == text.ToLower())
                        {
                            var value = Convert.ToInt32(op.GetAttribute("value"));

                            check = Convert.ToBoolean(value);
                        }
                    }
                }
                else
                {
                    throw new InvalidOperationException($"Unable to locate TwoOption field '{option.Name}' on the QuickCreate form. Please verify the TwoOption field exists and try again.");
                }

                return check;
            }));
        }