Beispiel #1
0
        public static void SelectOpe(IWebDriver driver,
                                     TestPart testPart)
        {
            var selectElement = new SelectElement(driver.FindElement(SelectItem(testPart)));

            selectElement.SelectByText(testPart.Value);
        }
Beispiel #2
0
        public static void InputsOpe(IWebDriver driver,
                                     TestPart testPart)
        {
            var context = new ContextForAutoTest();
            IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor;

            testPart.Inputs.ForEach(testInput =>
            {
                if (testInput.InputAutoPostBack == true)
                {
                    jsDriver.ExecuteScript($"$p.disableAutPostback = false;");
                }
                else
                {
                    jsDriver.ExecuteScript($"$p.disableAutPostback = true;");
                }
                if (!testInput.InputWaitTime.IsNullOrEmpty())
                {
                    Thread.Sleep(testInput.InputWaitTime.ToInt());
                }
                if (testInput.InputTarget.StartsWith("Check"))
                {
                    jsDriver.ExecuteScript($"$p.set($p.getControl('{testInput.InputTarget}').prop('checked',{testInput.InputValue}));");
                }
                else
                {
                    var script = $@"
                        var $element;
                        var target = '{testInput.InputTarget}';
                        if (target.indexOf('#') === -1) {{
                            $element = $p.getControl('{testInput.InputTarget}');
                        }}
                        if ($element === undefined) {{
                            $element = $(target);
                        }}
                        var value = '{testInput.InputValue}';
                        if ($element.prop('tagName') === 'SELECT') {{
                            $element.find('option').each(function(index) {{
	                            if ($(this).text() === value) {{
                                    value = $(this).val();
                                }}
                            }});
                        }}
                        $p.set($element, value);";
                    jsDriver.ExecuteScript(script);
                }
                WriteLog(
                    logFileName: Parameters.ExtendedAutoTestSettings.LogFileName,
                    logMessage:
                    Displays.AutoTestEntered(
                        context: context,
                        data: new string[]
                {
                    testInput.InputTarget,
                    testInput.InputValue
                })
                    );
            });
        }
Beispiel #3
0
        public static void HoverOpe(IWebDriver driver,
                                    TestPart testPart)
        {
            IWebElement mouseTarget = driver.FindElement(SelectItem(testPart: testPart));
            var         builder     = new OpenQA.Selenium.Interactions.Actions(driver);

            builder.MoveToElement(mouseTarget).Perform();
        }
Beispiel #4
0
        public static void CreateOpe(IWebDriver driver,
                                     TestPart testPart)
        {
            driver.FindElement(By.XPath("//button[@data-action='Create']")).Click();
            WaitingAlertSuccess(driver);
            IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor;

            testPart.CreatedTabeId = jsDriver.ExecuteScript("return $p.id();").ToString();
        }
Beispiel #5
0
        public static void InputOpe(IWebDriver driver,
                                    TestPart testPart)
        {
            IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor;

            jsDriver.ExecuteScript($"$p.disableAutPostback = true;");
            ClearOpe(driver, testPart);
            driver.FindElement(SelectItem(testPart: testPart))
            .SendKeys(testPart.Value);
        }
Beispiel #6
0
    public static int  obj_hash(long L)
    {
        TestPart obj = FCGetObj.GetObj <TestPart>(L);

        if (obj != null)
        {
            return(obj.GetHashCode());
        }
        return(0);
    }
 void SaveResault()
 {
     using (var context = new TestingSystemContext())
     {
         var testParts = new TestPart()
         {
             AccountId = Account.AccountId, PartId = Part.PartId, CountCorrect = CountCorrect, Date = DateTime.Now
         };
         context.TestParts.Add(testParts);
         context.SaveChanges();
     }
     _eventAggregator.PublishOnUIThread(new NavigateToViewModel(NavigationToEnum.User, Account));
 }
 public ActionResult AddUpdate(TestPart model)
 {
     model.Status      = model.ID > 0 ? model.Status : (short)1;
     model.CreatedDate = DateTime.Now;
     if (new SqlTestPartDao().Insert(model))
     {
         TempData["success"] = "Cập nhật thành công";
     }
     else
     {
         TempData["error"] = "Cập nhật thất bại";
     }
     return(Redirect("/Admin/TestPart"));
 }
Beispiel #9
0
    public static bool  obj_equal(long L, long R)
    {
        TestPart left  = FCGetObj.GetObj <TestPart>(L);
        TestPart right = FCGetObj.GetObj <TestPart>(R);

        if (left != null)
        {
            return(left.Equals(right));
        }
        if (right != null)
        {
            return(right.Equals(left));
        }
        return(true);
    }
Beispiel #10
0
 public static int SetValue_wrap(long L)
 {
     try
     {
         long     nThisPtr = FCLibHelper.fc_get_inport_obj_ptr(L);
         TestPart obj      = get_obj(nThisPtr);
         int      arg0     = FCLibHelper.fc_get_int(L, 0);
         obj.SetValue(arg0);
     }
     catch (Exception e)
     {
         Debug.LogException(e);
     }
     return(0);
 }
Beispiel #11
0
        public void StoreByNameSavesIntoInfoset()
        {
            var part = new TestPart();

            ContentHelpers.PreparePart(part, "Test");
            part.Foo = 42;
            var infosetXml      = part.As <InfosetPart>().Infoset.Element;
            var testPartElement = infosetXml.Element(typeof(TestPart).Name);

            Assert.That(testPartElement, Is.Not.Null);
            var fooAttribute = testPartElement.Attr <int>("Foo");

            Assert.That(part.Foo, Is.EqualTo(42));
            Assert.That(fooAttribute, Is.EqualTo(42));
        }
Beispiel #12
0
        public static void UploadFileOpe(IWebDriver driver, TestPart testPart)
        {
            var allowsDetection = driver as IAllowsFileDetection;

            if (allowsDetection != null)
            {
                allowsDetection.FileDetector = new LocalFileDetector();
                var filePath = Path.GetFullPath(testPart.Value) == testPart.Value
                    ? testPart.Value
                    : Path.Combine(
                    Environments.CurrentDirectoryPath,
                    "App_Data\\Parameters\\ExtendedAutoTest\\TestFiles",
                    testPart.Value);
                driver.FindElement(SelectItem(testPart)).SendKeys(filePath);
            }
            Thread.Sleep(testPart.WaitTime ?? 1000);
        }
Beispiel #13
0
        public static void GoToUrl(IWebDriver driver,
                                   TestPart testPart)
        {
            var url = string.Empty;

            if (!testPart.Url.IsNullOrEmpty())
            {
                url = testPart.Url.StartsWith("http")
                    ? testPart.Url
                    : $"{Parameters.ExtendedAutoTestSettings.Url}{testPart.Url}";
            }
            else if (!testPart.TestPartId.IsNullOrEmpty())
            {
                var recordId = testPart.RecordId();
                url = $"{Parameters.ExtendedAutoTestSettings.Url}items/{recordId}";
            }
            driver.Navigate().GoToUrl(url);
            Thread.Sleep(500);
        }
Beispiel #14
0
        public static List <CASParts.Wrapper> GetParts(TestPart onTest)
        {
            List <CASParts.Wrapper> results = new List <CASParts.Wrapper>();

            PartSearch search = new PartSearch();

            foreach (CASPart part in search)
            {
                CASParts.Wrapper newPart = new CASParts.Wrapper(part);

                if ((onTest != null) && (!onTest(newPart)))
                {
                    continue;
                }

                results.Add(newPart);
            }

            search.Reset();

            return(results);
        }
Beispiel #15
0
        private TestPart CreateTestPart(int correctAnswer, int seq, params string[] answers)
        {
            var question = new TestPart
            {
                CorrectAnswer = correctAnswer,
                Image         = ImageLoader.FromAssembly($"Test_{seq:00}"),
                Seq           = seq,
                Answers       = new List <TestPartAnswer>()
            };

            for (int i = 0; i < answers.Length; i++)
            {
                question.Answers.Add(
                    new TestPartAnswer
                {
                    TestPart     = question,
                    AnswerNumber = i + 1,
                    Text         = answers[i]
                });
            }

            return(question);
        }
Beispiel #16
0
 private static By SelectItem(TestPart testPart)
 {
     if (!testPart.ElementId.IsNullOrEmpty())
     {
         return(By.Id(testPart.ElementId));
     }
     else if (!testPart.ElementXpath.IsNullOrEmpty())
     {
         return(By.XPath(testPart.ElementXpath));
     }
     else if (!testPart.ElementCss.IsNullOrEmpty())
     {
         return(By.CssSelector(testPart.ElementCss));
     }
     else if (!testPart.TestPartId.IsNullOrEmpty())
     {
         var recordId = testPart.RecordId();
         return(By.XPath($"//tr[@data-id='{recordId}']"));
     }
     else
     {
         return(By.PartialLinkText(testPart.ElementLinkText));
     }
 }
Beispiel #17
0
        public static List<CASParts.Wrapper> GetParts(TestPart onTest)
        {
            List<CASParts.Wrapper> results = new List<CASParts.Wrapper>();            

            PartSearch search = new PartSearch();
            foreach (CASPart part in search)
            {
                CASParts.Wrapper newPart = new CASParts.Wrapper(part);               

                if ((onTest != null) && (!onTest(newPart))) continue;                

                results.Add(newPart);
            }          

            search.Reset();

            return results;
        }
Beispiel #18
0
 public static void ClickOpe(IWebDriver driver,
                             TestPart testPart)
 {
     driver.FindElement(SelectItem(testPart: testPart)).Click();
 }
Beispiel #19
0
 public static void EnterOpe(IWebDriver driver,
                             TestPart testPart)
 {
     driver.FindElement(SelectItem(testPart: testPart)).SendKeys(Keys.Return);
 }
Beispiel #20
0
 public override Runlet Weave(Runlet continuation, GlobalDictionary g)
 {
     return(TestPart.Weave(new ForkRunlet(ThenPart.Weave(continuation, g), ElsePart.Weave(continuation, g)), g));
 }
Beispiel #21
0
    // Update is called once per frame
    void Update()
    {
        if (!docking)
        {
            if (tag == "Player")
            {
                target = null;
                if (tractorBeam != null)
                {
                    Destroy(tractorBeam);
                    tractorBeam = null;
                }
            }
            wpsIndex = 0;
            if (transform.parent != null)
            {
                if (transform.parent.gameObject.tag != "KeepPlayer" && tag == "Player")
                {
                    transform.parent = GameObject.Find("KeepPlayer").transform;
                }
            }
        }
        if (docking)
        {
            if (!target)                                                                         //docking第一次为true时执行
            {
                Collider[] targetsColliders = Physics.OverlapSphere(transform.position, radius); //获取范围内可能可对接物体
                float      temp_distance    = radius;
                for (int i = 0; i < targetsColliders.Length; i++)
                {
                    if (targetsColliders[i].gameObject.tag == "Dock" || targetsColliders[i].gameObject.tag == "Part")     //对接物体的tag应设为"Dock"
                    {
                        if (Vector3.Distance(transform.position, targetsColliders[i].transform.position) < temp_distance) //获取最近Dock
                        {
                            target        = targetsColliders[i].gameObject;
                            temp_distance = Vector3.Distance(transform.position, targetsColliders[i].transform.position);
                        }
                    }
                }
                if (target)
                {
                    //清除惯性导致的速度
                    if (this.gameObject.GetComponent <Rigidbody>() != null)
                    {
                        this.gameObject.GetComponent <Rigidbody>().velocity = new Vector3(0, 0, 0);
                    }
                }
            }

            if (target)
            {//如果有可对接物体
                if (gameObject.tag == "Player" && tractorBeam == null)
                {
                    tractorBeam = Instantiate(tractorBeamPre, gameObject.transform);
                }
                if (tractorBeam != null)
                {
                    tractorBeam.GetComponent <Transform>().Find("LightningEnd").gameObject.transform.position = target.transform.position;
                }
                GameObject thisTarget = target.GetComponent <Dock>().wps[wpsIndex];//当前驶向的路径点
                if (thisTarget.GetComponent <WayPoint>() == null)
                {
                    Debug.Log("好吧,你忘记给路径点加脚本了,现在看下到底漏了哪个");
                    Debug.Log("null:    " + thisTarget);
                    Debug.Log("index:   " + wpsIndex);
                    Debug.Log("target:   " + target);
                }

                if (!thisTarget.GetComponent <WayPoint>().turn)//若WayPoint的turn为false,平移至此路径点
                {
                    if (gameObject.tag == "Player")
                    {
                        gameObject.GetComponent <Flight>().stabZ = true;
                        if (target.GetComponent <DockGuide>() != null)
                        {
                            //transform.eulerAngles = Vector3.Lerp (transform.eulerAngles, target.transform.eulerAngles,3*Time.deltaTime);
                            //transform.eulerAngles = target.transform.eulerAngles;
                            //transform.localEulerAngles = Vector3.Slerp (transform.localEulerAngles, target.transform.localEulerAngles,);
                            //DIY_Movement.SoftLookAt(this.gameObject,thisTarget.transform.position,30);

                            float angle    = Vector3.Angle(transform.forward, target.transform.forward);
                            float needTime = angle / 30;
                            float v        = 1;
                            if (needTime > Mathf.Epsilon)
                            {
                                v = Time.deltaTime / needTime;
                            }
                            Quaternion t = Quaternion.Euler(0, 0, 0);
                            transform.localRotation = Quaternion.Slerp(transform.localRotation, t, v);
                        }

                        transform.Translate(Vector3.Normalize(thisTarget.transform.position - transform.position) * speed * Time.deltaTime);
                        //Debug.Log("docking to" + thisTarget);
                    }
                    else
                    {
                        Vector3 offset = (thisTarget.transform.position - transform.position).normalized;
                        float   angle  = Vector3.Angle(transform.forward, offset);
                        if (angle > Mathf.Epsilon)
                        {
                            DIY_Movement.SoftLookAt(this.gameObject, thisTarget.transform.position, 30);
                        }
                        else
                        {
                            transform.Translate(Vector3.forward * speed * Time.deltaTime);
                        }
                    }
                }
                else
                {//之前的其他路径点则先转向,后直行
                    Vector3 offset = (thisTarget.transform.position - transform.position).normalized;
                    float   angle  = Vector3.Angle(transform.forward, offset);
                    if (angle > Mathf.Epsilon)
                    {
                        if (thisTarget.transform.position - transform.position != Vector3.zero)
                        {
                            DIY_Movement.SoftLookAt(this.gameObject, thisTarget.transform.position, 30);
                        }
                    }
                    else
                    {
                        transform.Translate(Vector3.forward * speed * Time.deltaTime);
                    }
                }



                if (Vector3.Distance(transform.position, thisTarget.transform.position) < 0.5f)
                {//到达路径点后执行
                    if (wpsIndex < target.GetComponent <Dock>().wps.Length - 1)
                    {
                        wpsIndex++;
                    }
                    else
                    {
                        transform.position = thisTarget.transform.position;
                        if (target.tag == "Part")
                        {
                            TestPart part = target.GetComponentInChildren <TestPart>();
                            part.gameObject.transform.parent        = transform;
                            part.gameObject.transform.localRotation = Quaternion.Euler(Vector3.zero);
                            part.gameObject.transform.localPosition = Vector3.zero;
                            Destroy(target);
                            docking    = false;
                            target     = null;
                            wpsIndex   = 0;
                            thisTarget = null;
                            if (part.tag == "Laser")
                            {
                                this.GetComponent <Fire>().lasterGun = true;
                            }
                        }
                        else
                        {
                            transform.parent = target.transform;
                            if (target.GetComponent <DockGuide>() != null)
                            {
                                target.GetComponent <DockGuide>().docking = true;
                            }
                            if (target.gameObject.name == "Portal")
                            {
                                transform.parent = GameObject.Find("KeepPlayer").transform;
                                target           = null;
                                wpsIndex         = 0;
                                docking          = false;
                            }
                        }
                        //docking = false;
                        //target = null;
                        //Debug.Log ("docked");
                    }
                }
            }
            else
            {
                docking = false;
                Debug.Log("范围内无目标");
            }
        }
    }
Beispiel #22
0
 public Tester(TestPart mode, Action <string, string, string> selectionAssertion = null, Action <string, string, string, string> transformAssertion = null)
 {
     _mode = mode;
     SelectionAssertion = selectionAssertion;
     TransformAssertion = transformAssertion;
 }
Beispiel #23
0
        public static void Execute(IWebDriver driver, TestPart testPart)
        {
            IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor;

            jsDriver.ExecuteScript(testPart.Value);
        }