public static void SelectOpe(IWebDriver driver, TestPart testPart) { var selectElement = new SelectElement(driver.FindElement(SelectItem(testPart))); selectElement.SelectByText(testPart.Value); }
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 }) ); }); }
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(); }
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(); }
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); }
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")); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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)); } }
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; }
public static void ClickOpe(IWebDriver driver, TestPart testPart) { driver.FindElement(SelectItem(testPart: testPart)).Click(); }
public static void EnterOpe(IWebDriver driver, TestPart testPart) { driver.FindElement(SelectItem(testPart: testPart)).SendKeys(Keys.Return); }
public override Runlet Weave(Runlet continuation, GlobalDictionary g) { return(TestPart.Weave(new ForkRunlet(ThenPart.Weave(continuation, g), ElsePart.Weave(continuation, g)), g)); }
// 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("范围内无目标"); } } }
public Tester(TestPart mode, Action <string, string, string> selectionAssertion = null, Action <string, string, string, string> transformAssertion = null) { _mode = mode; SelectionAssertion = selectionAssertion; TransformAssertion = transformAssertion; }
public static void Execute(IWebDriver driver, TestPart testPart) { IJavaScriptExecutor jsDriver = driver as IJavaScriptExecutor; jsDriver.ExecuteScript(testPart.Value); }