日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

selenium2(WebDriver) API

 小豬窩969 2015-04-20

1.1  下載selenium2.0的包

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

1.2.1  用webdriver打開一個(gè)瀏覽器

  • 打開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 關(guān)閉瀏覽器 

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方法會(huì)產(chǎn)生1個(gè)Navigator對(duì)象,其封裝了與導(dǎo)航相關(guān)的一些方法,比如前進(jìn)后退等

1.4  頁面元素定位

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

  • findElement   定位某個(gè)元素,如果沒有找到元素會(huì)拋出異常: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("http://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:

      //通俗點(diǎn)就是精確查詢

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

  • By.partialLinkText:

      //這個(gè)方法就是模糊查詢
      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  如何對(duì)頁面元素進(jìn)行操作

1.5.1 輸入框(text field or textarea)

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

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

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單選項(xiàng)(Radio Button)

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

  • radio.click();       //選擇某個(gè)單選項(xiàng)
  • radio.clear();      //清空某個(gè)單選項(xiàng)
  • radio.isSelected();  //判斷某個(gè)單選項(xiàng)是否已經(jīng)被選擇

1.5.4多選項(xiàng)(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();      //點(diǎn)擊按鈕
  • btn.isEnabled ();  //判斷按鈕是否enable

1.5.7彈出對(duì)話框(Popup dialogs)

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

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

1.5.8表單(Form)

  Form中的元素的操作和其它的元素操作一樣,對(duì)元素操作完成后對(duì)表單的提交可以:

  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");    //切換到某個(gè)frame:
  • driver.switchTo().window("windowName"); //切換到某個(gè)window 

1.7  調(diào)用Java Script

Web driver對(duì)Java Script的調(diào)用是通過JavascriptExecutor來實(shí)現(xiàn)的,例如:

JavascriptExecutor js = (JavascriptExecutor) driver;

        js.executeScript("JS腳本");

1.8  超時(shí)設(shè)置 

WebDriver driver = new FirefoxDriver();

  • driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);      //識(shí)別元素時(shí)的超時(shí)時(shí)間
  • driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);  //頁面加載時(shí)的超時(shí)時(shí)間
  • driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);  //異步腳本的超時(shí)時(shí)間

 


                                    

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多