Пример #1
0
        /// <summary>
        /// 태그 더블클릭
        /// </summary>
        /// <param name="type"></param>
        /// <param name="selectText"></param>
        /// <returns></returns>
        public ResultModel <bool> DoubleClickTag(ElementsSelectType type, string selectText)
        {
            var result = new ResultModel <bool>();

            try
            {
                var element = FindElement(type, selectText);
                if (element == null)
                {
                    result.ResultValue = false;
                    result.Err         = $"다음과 일치하는 태그가 없습니다. [{selectText}]";
                    return(result);
                }

                element.Click();

                var actions = new Actions(Driver);
                actions.DoubleClick(element).Perform();

                result.ResultValue = true;
            }
            catch (Exception e)
            {
                result.ResultValue = false;
                result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
            }

            return(result);
        }
        /// <summary>
        /// 선택자 객체 가져오기
        /// </summary>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public By GetBy(ElementsSelectType type, string name)
        {
            switch (type.ToString())
            {
            case "ClassName":
                return(By.ClassName(name));

            case "CssSelector":
                return(By.CssSelector(name));

            case "Id":
                return(By.Id(name));

            case "LinkText":
                return(By.LinkText(name));

            case "Name":
                return(By.Name(name));

            case "PartialLinkText":
                return(By.PartialLinkText(name));

            case "TagName":
                return(By.TagName(name));

            case "XPath":
                return(By.XPath(name));

            default:
                return(null);
            }
        }
Пример #3
0
        /// <summary>
        /// input에 텍스트 넣기
        /// </summary>
        /// <param name="type"></param>
        /// <param name="selectText"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public ResultModel <bool> SetTextInputTag(ElementsSelectType type, string selectText, string text)
        {
            var result = new ResultModel <bool>();

            try
            {
                if (string.IsNullOrEmpty(text))
                {
                    result.ResultValue = false;
                    result.Err         = "입력 값이 없습니다.";
                    return(result);
                }

                var input = FindElement(type, selectText);
                if (input == null)
                {
                    result.ResultValue = false;
                    result.Err         = $"다음과 일치하는 태그가 없습니다. [{selectText}]";
                    return(result);
                }

                input.Clear();
                input.SendKeys(text);

                result.ResultValue = true;
            }
            catch (Exception e)
            {
                result.ResultValue = false;
                result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
            }

            return(result);
        }
Пример #4
0
        // input에 텍스트 넣기
        public string SetTextInputTag(ElementsSelectType type, string tagName, string text)
        {
            try
            {
                if (string.IsNullOrEmpty(text))
                {
                    return(string.Empty);
                }

                var input = FindElement(type, tagName);
                if (input == null)
                {
                    return("null");
                }

                input.Clear();
                input.SendKeys(text);

                return(string.Empty);
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Пример #5
0
 /// <summary>
 /// 단일 엘레멘트 가져오기
 /// </summary>
 /// <param name="type"></param>
 /// <param name="name"></param>
 /// <returns></returns>
 private IWebElement FindElement(ElementsSelectType type, string name)
 {
     try
     {
         var by         = GetBy(type, name);
         var webElement = Driver.FindElement(by);
         return(webElement);
     }
     catch
     {
         return(null);
     }
 }
Пример #6
0
 /// <summary>
 /// 멀티 엘레먼트 가져오기
 /// </summary>
 /// <param name="type"></param>
 /// <param name="name"></param>
 /// <returns></returns>
 private ReadOnlyCollection <IWebElement> FindElements(ElementsSelectType type, string name)
 {
     try
     {
         var by          = GetBy(type, name);
         var webElements = Driver.FindElements(by);
         return(webElements);
     }
     catch
     {
         return(null);
     }
 }
Пример #7
0
 // input value값 가져오기
 public string GetValueInputTag(ElementsSelectType type, string tagName, out string inputValue)
 {
     try
     {
         var input = FindElement(type, tagName);
         inputValue = input.GetAttribute("value");
         return(string.Empty);
     }
     catch (Exception e)
     {
         inputValue = string.Empty;
         return(e.Message);
     }
 }
Пример #8
0
 // 태그의 text 값 가져오기
 public string GetTagText(ElementsSelectType type, string tagName, out string tagText)
 {
     try
     {
         var tag = FindElement(type, tagName);
         tagText = tag.Text;
         return(string.Empty);
     }
     catch (Exception e)
     {
         tagText = string.Empty;
         return(e.Message);
     }
 }
        /// <summary>
        /// 엘레멘트의 하위 싱글 엘레멘트 가져오기
        /// </summary>
        /// <param name="element"></param>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public IWebElement FindDefailElement(IWebElement element, ElementsSelectType type, string name)
        {
            try
            {
                Driver.WaitForAjax();
                var by         = GetBy(type, name);
                var webElement = element.FindElement(by);

                return(webElement);
            }
            catch
            {
                return(null);
            }
        }
Пример #10
0
        /// <summary>
        /// 클릭 동작 수행 (버튼, 테이블, 태그 등)
        /// </summary>
        /// <param name="type"></param>
        /// <param name="selectText"></param>
        /// <returns></returns>
        public ResultModel <bool> ClickTag(ElementsSelectType type, string selectText)
        {
            var result = new ResultModel <bool>();

            try
            {
                var element = FindElement(type, selectText);
                if (element == null)
                {
                    result.ResultValue = false;
                    result.Err         = $"다음과 일치하는 태그가 없습니다. [{selectText}]";
                    return(result);
                }

                for (int i = 0; i <= 10; i++)
                {
                    try
                    {
                        Thread.Sleep(200);
                        element.Click();
                    }
                    catch (Exception e)
                    {
                        if (i == 10)
                        {
                            result.ResultValue = false;
                            result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
                            return(result);
                        }

                        continue;
                    }

                    break;
                }

                result.ResultValue = true;
            }
            catch (Exception e)
            {
                result.ResultValue = false;
                result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
            }

            return(result);
        }
Пример #11
0
        /// <summary>
        /// input value값 가져오기
        /// </summary>
        /// <param name="type"></param>
        /// <param name="selectText"></param>
        /// <param name="inputValue"></param>
        /// <returns></returns>
        public ResultModel <string> GetValueInputTag(ElementsSelectType type, string selectText)
        {
            var result = new ResultModel <string>();

            try
            {
                var input = FindElement(type, selectText);
                result.ResultValue = input.GetAttribute("value");
            }
            catch (Exception e)
            {
                result.ResultValue = string.Empty;
                result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
            }

            return(result);
        }
Пример #12
0
        /// <summary>
        /// 태그의 text 값 가져오기
        /// </summary>
        /// <param name="type"></param>
        /// <param name="selectText"></param>
        /// <param name="tagText"></param>
        /// <returns></returns>
        public ResultModel <string> GetTagText(ElementsSelectType type, string selectText)
        {
            var result = new ResultModel <string>();

            try
            {
                var tag = FindElement(type, selectText);
                result.ResultValue = tag.Text;
            }
            catch (Exception e)
            {
                result.ResultValue = string.Empty;
                result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
            }

            return(result);
        }
Пример #13
0
        /// <summary>
        /// 사용할 태그가 있는지 확인 (다중 선택자 용)
        /// </summary>
        /// <param name="type"></param>
        /// <param name="selectText"></param>
        /// <returns></returns>
        public ResultModel <bool> ExistsElements(ElementsSelectType type, string selectText)
        {
            var result = new ResultModel <bool>();

            try
            {
                var tags = FindElements(type, selectText);
                result.ResultValue = tags == null && tags.Count < 1 ? false : true;
            }
            catch (Exception e)
            {
                result.ResultValue = false;
                result.Err         = $"오류가 발생하였습니다. : [{e.Message}]";
            }

            return(result);
        }
Пример #14
0
        // 클릭 (버튼, 테이블, 태그 등)
        public string ClickTag(ElementsSelectType type, string name)
        {
            try
            {
                var element = FindElement(type, name);
                if (element == null)
                {
                    return("null");
                }

                element.Click();

                return(string.Empty);
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
        /// <summary>
        /// 엘레멘트의 하위 멀티 엘레멘트 가져오기
        /// </summary>
        /// <param name="element"></param>
        /// <param name="type"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public ReadOnlyCollection <IWebElement> FindDefailElements(IWebElement element, ElementsSelectType type, string name)
        {
            try
            {
                Driver.WaitForAjax();
                var by          = GetBy(type, name);
                var webElements = element.FindElements(by);

                return(webElements);
            }
            catch
            {
                return(null);
            }
        }