Exemplo n.º 1
0
        public virtual void ExeTest <T>(T driver, ITestPropertyModelBase prop) where T : RemoteWebDriver
        {
            //テストケースの取得
            //カスタムテストケースから
            List <Dictionary <string, string> > testElemList = null;

            if (prop.testCase == "801")
            {
                testElemList = new TestCase01().TestElement(prop);
            }
            //CSVファイルから
            else if (prop.testCase == "901")
            {
                testElemList = new FileIo().TestCaseFromUploadFile(prop.uploadFileSavePath, prop.testCaseFile);
            }
            // データベースから
            else if (prop.testCase == "902")
            {
                var dbIo = new DataBaseIo();
                testElemList = dbIo.TestCaseFromDB(prop.selectTestCaseNo);
                List <TestCaseModel> testCaseList = dbIo.ExeReader <TestCaseModel>($@"select * from test_case_t where test_case_no = '{ prop.selectTestCaseNo }'");
                prop.testURL = testCaseList[0].test_url;
            }

            //ブラウザを開く
            driver.Navigate().GoToUrl(prop.testURL);

            //画面サイズ設定
            var so = new ScreenOprations();

            so.ReSize(driver, prop.screenWidth, prop.screenHeight);

            //テストケースの実行
            this.ExeTestCase <T>(driver, prop, testElemList);

            if (prop.screenCloseFlg)
            {
                //ブラウザを閉じる
                driver.Close();
            }
        }
Exemplo n.º 2
0
        public bool TestElementExecution <T>(T driver, int elemNo, ITestPropertyModelBase prop, string elemName, string sendKey = "", string sleep = "") where T : RemoteWebDriver
        {
            bool result = false;

            //実行前に少し待つ
            if (sleep == "")
            {
                Thread.Sleep(500);
            }
            else
            {
                Thread.Sleep(Convert.ToInt32(sleep));
            }

            try
            {
                //スクリーンショット取得
                if (elemNo == (int)EnumTestElem.getScreen)
                {
                    var scrOpt = new ScreenOprations();
                    scrOpt.GetScreenCommon <T>(driver, prop.evidenceSavePath, elemName, prop.testBrowser, prop.screenShotType);
                    result = true;
                }
                //sendkey id 主にテキストボックスなど
                else if (elemNo == (int)EnumTestElem.Id_SendKey)
                {
                    if (driver.FindElements(By.Id(elemName)).Count > 0)
                    {
                        driver.FindElementById(elemName).SendKeys(sendKey);
                        result = true;
                    }
                }
                //sendkey id 主にセレクトボックスなど
                else if (elemNo == (int)EnumTestElem.Id_SendKeyForSelectEtc)
                {
                    if (driver.FindElements(By.Id(elemName)).Count > 0)
                    {
                        driver.FindElement(By.Id(elemName)).SendKeys(sendKey);
                        result = true;
                    }
                }
                //sendkey Name 主にテキストボックスなど
                else if (elemNo == (int)EnumTestElem.Name_SendKey)
                {
                    if (driver.FindElements(By.Name(elemName)).Count > 0)
                    {
                        driver.FindElementByName(elemName).SendKeys(sendKey);
                        result = true;
                    }
                }
                //sendkey Name 主にセレクトボックスなど
                else if (elemNo == (int)EnumTestElem.Name_SendKeyForSelectEtc)
                {
                    if (driver.FindElements(By.Name(elemName)).Count > 0)
                    {
                        driver.FindElement(By.Name(elemName)).SendKeys(sendKey);
                        result = true;
                    }
                }
                //クリック
                else if (elemNo == (int)EnumTestElem.Id_Click)
                {
                    if (driver.FindElements(By.Id(elemName)).Count > 0)
                    {
                        driver.FindElementById(elemName).Click();
                        result = true;
                    }
                }
                else if (elemNo == (int)EnumTestElem.Name_Click)
                {
                    if (driver.FindElements(By.Name(elemName)).Count > 0)
                    {
                        driver.FindElementByName(elemName).Click();
                        result = true;
                    }
                }
                else if (elemNo == (int)EnumTestElem.ClassName_Click)
                {
                    if (driver.FindElements(By.ClassName(elemName)).Count > 0)
                    {
                        driver.FindElementByClassName(elemName).Click();
                        result = true;
                    }
                }
                else if (elemNo == (int)EnumTestElem.XPath_Click)
                {
                    if (driver.FindElements(By.XPath(elemName)).Count > 0)
                    {
                        driver.FindElementByXPath(elemName).Click();
                        result = true;
                    }
                }
                else if (elemNo == (int)EnumTestElem.LinkText_Click)
                {
                    if (driver.FindElements(By.LinkText(elemName)).Count > 0)
                    {
                        driver.FindElementByLinkText(elemName).Click();
                        result = true;
                    }
                }
                //javascript実行
                else if (elemNo == (int)EnumTestElem.Execute_Script)
                {
                    driver.ExecuteScript(elemName);
                    result = true;
                }

                //テストが失敗していた場合
                if (!result)
                {
                    prop.resultErrorMsg = $"テスト要素 \"{ elemNo }\", \"{ elemName }\", \"{ sendKey }\" が実行できませんでした。テスト要素を見直してください。";
                }
            }
            catch (Exception e) { prop.resultErrorMsg = $"テスト要素 \"{ elemNo }\", \"{ elemName }\", \"{ sendKey }\" が実行できませんでした。テスト要素を見直してください。詳しいエラー:{ e.ToString() }"; }

            return(result);
        }