標籤:efault dia action mes odi classname esb ESS webdriver
1:Selenium中對瀏覽器的操作首先產生一個Web對象IWebDriver driver = new FirefoxDriver(); //開啟指定的URL地址driver.Navigate().GoToUrl(@"http://12.99.102.196:9080/corporbank/logon_pro.html"); //關閉瀏覽器Driver.quit(); 網銀瀏覽器安全色性測試過程中,關閉瀏覽器後會有對話方塊,此問題解決方案如下:public void logout() { System.Diagnostics.Process[] myProcesses;myProcesses = System.Diagnostics.Process.GetProcessesByName("IEXPLORE"); foreach (System.Diagnostics.Process instance in myProcesses) { instance.Kill(); } } 2:Selenium中執行JS 指令碼//需要將driver強制轉換成JS執行器類型((IJavaScriptExecutor) driver).ExecuteScript("js檔案名稱"); 3:Selenium中定位頁面元素driver.FindElement(By.Id("cp1_btnModify")).click(); By.ClassName(className)); By.CssSelector(selector) ; By.Id(id); By.LinkText(linkText); By.Name(name); By.PartialLinkText(linkText); By.TagName(name); By.Xpath(xpathExpression); 3.1根據元素id定位並操作//向指定的文字框輸入字串500001Driver.FindElement(By.Id("amount")).SendKeys("500001"); 3.2根據元素classname定位並操作//點擊classname為指定值的按鈕Driver.FindElement(By.ClassName(“WotherDay”)).click(); 3.3根據元素的linktext定位並操作Driver.FindElement(By.LinkText(“選擇帳號”)).click(); 3.4根據元素的Name定位並操作Driver.FindElement(By.Name(“quality”)).perform(); 3.5使用CssSelector定位並操作string order = "#resultTable.result_table tbody tr.bg1 td.center a";driver.FindElement (By.CssSelector(order)).click(); 3.6使用Xpath定位並元素並操作//使用多個屬性定位元素Driver.FindElement(By.XPath("//input[@id=‘submit‘ and @value=‘下一步‘]")).click(); //使用絕對路徑定位元素string path = "/html/body/div[4]/div/div/div[2]/table/tbody/tr/td/a";Driver.FindElement(By.Xpath(path)).click(); 各方法使用優先原則:優先使用id,name,classname,link;次之使用CssSelector();最後使用Xpath();因為Xpath()方法的效能和效率最低下。4:Selenium中清空文字框中的預設內容//清空文字框clear()Driver.FindElement(By.Id("tranAmtText")).clear(); 5:Selenium中在指定的文字框中輸入指定的字串//在文字框中輸入指定的字串sendkeys()Driver.FindElement(By.Id("tranAmtText")).SendKeys(“123456”); 6:Selenium中移動游標到指定的元素上//移動游標到指定的元素上performActions action=new Actions(driver);action.MoveToElement(Find(By.XPath("//input[@id=‘submit‘ and @value=‘確定‘]"))).Perform(); 7:Selenium中點擊按鈕/連結//點擊按鈕/連結click()Driver.FindElement(By.XPath("//input[@id=‘submit‘ and @value=‘下一步‘]")).click(); 8:Selenium中等待頁面上的元素載入完成//等待頁面元素載入完成//預設等待100秒WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));//等待頁面上ID屬性值為submitButton的元素載入完成wait.Until((d) => { return WaitForObject(By.Id("submitButton")); }); 9:Selenium中類比滑鼠晃動//類比游標晃動movebyoffset()Actions action = new Actions(driver);action.MoveByOffset(2, 4); 10:Selenium中對iframe中元素的定位5.1:切換焦點到id為固定值的iframe上進入頁面後,游標預設焦點在DefaultContent中,若想要定位到iframe 需要轉換焦點driver.SwitchTo().DefaultContent();//切換焦點到mainFramedriver.SwitchTo().Frame("mainFrame"); 需要注意的是:切換焦點之後若想切換焦點到其他iframe上 需要先返回到defaultcontent,再切換焦點到指定的iframe上。 5.2切換焦點到id值為動態值的iframe上有時候 頁面上浮出層的id為動態值,此時需要先擷取所有符合記錄的iframe放置在數組中,然後遍曆數組切換焦點到目標iframe上。如下方法: protected string bizFrameId = string.Empty;protected string bizId = string.Empty;//擷取動態iframe的id值 protected void SetIframeId() { ReadOnlyCollection
Selenium Webdriver 自動化測試開發常見問題(C#版)VS