綜合方法selenium整理

1.1  下載selenium2.0的包

  1. 官方download包地址:http://code.google.com/p/selenium/downloads/list
  2. 官方User Guide:   http://seleniumhq.org/docs/
  3. 官方API:        http://selenium.googlecode.com/git/docs/api/java/index.html

1.2.1  用webdriver打開一個瀏覽器

  • 打開firefox瀏覽器:

            WebDriver driver = new FirefoxDriver(); 

  • 打開IE瀏覽器

            WebDriver driver = new InternetExplorerDriver ();

  • 打開HtmlUnit瀏覽器

            WebDriverdriver = new HtmlUnitDriver(); 

  • 打開chrome瀏覽器

       WebDriverdriver = new ChromeDriver();

1.2.2  最大化瀏覽器  

  WebDriver driver = new FirefoxDriver();
  driver.manage().window().maximize();

1.2.3 關閉瀏覽器 

WebDriver driver = new FirefoxDriver();

  •   driver.close();
  •   driver.quit();

1.3  打開測試頁面

  • driver.get("http://www.google.com");
  • driver.navigate().to("http://www.baidu.com/"); 

      P.S.navigate方法會產生1個Navigator對象,其封裝了與導航相關的一些方法,比如前進後退等

1.4  頁面元素定位

Webdriver提供下面兩種方法來定位頁面元素,參數是By對像,最常用是By.id和By.name查找。

  • findElement   定位某個元素,如果沒有找到元素會拋出異常:NoSuchElementException
  • findElements     定位一組元素

 例如需要定位如下元素:

  <input class="input_class" type="text" name="passwd" id="passwd-id" /> 

  • By.id:

      WebElement element = driver.findElement(By.id("passwd-id"));

  • By.name:

      WebElement element = driver.findElement(By.name("passwd"));

  • By.xpath:

      WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']")); 

  • By.className

      WebElement element = driver.findElement(By.className("input_class"));

  • By.cssSelector

      WebElement element = driver.findElement(By.cssSelector(".input_class"));

  • By.linkText:

      //通俗點就是精確查詢

      WebDriver driver = new FirefoxDriver();
      driver.get("http://www.baidu.com/");
      WebElement element = driver.findElement(By.linkText("百科"));

  • By.partialLinkText:

      //這個方法就是模糊查詢
      WebDriver driver = new FirefoxDriver();
      driver.get("http://www.baidu.com/");
      WebElement element = driver.findElement(By.partialLinkText("hao"));

  • By.tagName:

      WebDriver driver = new FirefoxDriver();
      driver.get("http://www.baidu.com/");
      String test= driver.findElement(By.tagName("form")).getAttribute("name");
      System.out.println(test); 

1.5  如何對頁面元素進行操作

1.5.1 輸入框(text field or textarea)

WebElement element = driver.findElement(By.id("passwd-id"));

  • element.sendKeys(“test”);//在輸入框中輸入內容:
  • element.clear();       //將輸入框清空
  • element.getText();     //獲取輸入框的文本內容: 

1.5.2下拉選擇框(Select)

Select select = new Select(driver.findElement(By.id("select")));  

  • select.selectByVisibleText(“A”);
  • select.selectByValue(“1”); 
  • select.deselectAll();
  • select.deselectByValue(“1”);
  • select.deselectByVisibleText(“A”);
  • select.getAllSelectedOptions();
  • select.getFirstSelectedOption(); 

1.5.3單選項(Radio Button)

WebElement radio=driver.findElement(By.id("BookMode"));

  • radio.click();       //選擇某個單選項
  • radio.clear();      //清空某個單選項
  • radio.isSelected();  //判斷某個單選項是否已經被選擇

1.5.4多選項(checkbox)

WebElement checkbox = driver.findElement(By.id("myCheckbox."));

  • checkbox.click();
  • checkbox.clear();
  • checkbox.isSelected();
  • checkbox.isEnabled();

1.5.5按鈕(button)

WebElement btn= driver.findElement(By.id("save"));

  • btn.click();      //點擊按鈕
  • btn.isEnabled ();  //判斷按鈕是否enable

1.5.7彈出對話框(Popup dialogs)

Alert alert = driver.switchTo().alert();

  • alert.accept();  //確定
  • alert.dismiss();  //取消
  • alert.getText(); //獲取文本

1.5.8表單(Form)

  Form中的元素的操作和其它的元素操作一樣,對元素操作完成後對錶單的提交可以:

  WebElement approve = driver.findElement(By.id("approve"));

  approve.click();

  approve.submit();//只適合於表單的提交

1.5.9上傳文件

上傳文件的元素操作:

  WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));

  String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";

  adFileUpload.sendKeys(filePath);

1.6  Windows 和 Frames之間的切換

  • driver.switchTo().defaultContent();     //返回到最頂層的frame/iframe
  • driver.switchTo().frame("leftFrame");    //切換到某個frame:
  • driver.switchTo().window("windowName"); //切換到某個window 

1.7  調用Java Script

Web driver對Java Script的調用是通過JavascriptExecutor來實現的,例如:

JavascriptExecutor js = (JavascriptExecutor) driver;

        js.executeScript("JS腳本");

1.8  超時設置 

WebDriver driver = new FirefoxDriver();

  • driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);      //識別元素時的超時時間
  • driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);  //頁面加載時的超時時間
  • driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);  //異步腳本的超時時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章