selenium的API

作者:Glen.He 
出處:http://www.cnblogs.com/puresoul/ 


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     定位一組元素

 例如需要定位如下元素:

   

  • 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);  //異步腳本的超時時間
更多相關文章
  • 使用JavaScript本章主題如下:*使用JavaScript*在測試中使用JavaScript變量*使用JavaScript訪問浏覽器*點擊元素的事件*使用JavaScript    比如說輸入當前日期:javascript{ Date() },輸入小時:javascript{ d = new ...
  • 一般的爬蟲都是直接使用http協定,下載指定url的html內容,並對內容進行分析和抽取.在我寫的爬蟲框架webmagic裏也使用了HttpClient來完成這樣的任務.但是有些頁面是通過js以及ajax動態載入的,例如:花瓣網.這時如果我們直接分析原始頁面的html,是得不到有效的信息的.當然,因 ...
  • Selenium是一個簡便的Web應用軟件測試框架.Selenium的組件Selenium IDE支持錄制/回放.它還支持Python,Java,C#,javascript等語言.支持Windows,Linux和Macintosh.它是 開源軟件,根據Apache2.0許可證發布的,並可以下載並無償 ...
  • 1.1  下載selenium2.0的lib包http://code.google.com/p/selenium/downloads/list官方User Guide:http://seleniumhq.org/docs/1.2  用webdriver打開一個浏覽器我們常用的浏覽器有firefox和 ...
  •  我們先前學習過元素定位,大家不知道學習得怎麽樣了,當你學會元素定位之後就可以跟著我的腳步學習本節Selenium 常用的API 介紹   Seleium 爲什麽能模擬人的形爲進行機器化操作,主要是因爲Selenium jar 提供了對頁面元素進行輸入,點擊,選擇,取消,獲取等功能   現在我來介紹 ...
  • ‍SeleniumWebDriver注意:我們正致力于完善幫助指南的每一個章節,雖然這個章節仍然存在需要完善的地方,不過我們堅信當前你看到的幫助信息是精確無誤的,後續我們會提供更多的指導信息來完善幫助文檔.1.WebDriver介紹Selenium2.0最主要的新特性就是集成了WebDriverAP ...
  • Selenium WebDriver高級用法掌握selenium初級用法後,來繼續深入學習一下.選擇合適的WebDrvierWebDriver是一個接口,它有幾種實現,分別是HtmlUnitDrvier.FirefoxDriver.InternetExplorerDriver.ChromeDrive ...
  • 在用selenium webdriver 編寫web頁面的自動化測試代碼時,可能需要執行一些javascript代碼,selenium本身就支持執行js,我們在代碼中 import org.openqa.selenium.JavascriptExecutor;就可以使用 executeScript. ...
一周排行