webdriverAPI詳解

1 webdriver中WebDriver類

package cn.caogao;

import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Demo1 {


public static void main(String[] args) {
// TODO Auto-generated method stub
String url_1="http://www.baidu.com";
String url_2="http://www.sogou.com";
WebDriver driver=new FirefoxDriver();
driver.get(url_1);
WebElement element= driver.findElement(By.id("kw"));
element.sendKeys("中國");
System.out.println("-----------------------------------分割線------------------------------------");

List<WebElement> elements=driver.findElements(By.tagName("a"));  
for(WebElement e:elements)
{
System.out.println(e.getText());
/*
* 百度首頁設置登錄新聞貼吧知道音樂圖片視頻地圖文庫更多»
* */
}
System.out.println("-----------------------------------分割線------------------------------------");
System.out.println(driver.getCurrentUrl());         // https://www.baidu.com/
System.out.println("-----------------------------------分割線------------------------------------");
//System.out.println(driver.getPageSource());        //返回頁面代碼
System.out.println("-----------------------------------分割線------------------------------------");
System.out.println(driver.getTitle());  //百度一下,你就知道
System.out.println("-----------------------------------分割線------------------------------------");
System.out.println(driver.getWindowHandle());      //{daf895e9-34f2-4e36-91f7-23a857a43498}
System.out.println("-----------------------------------分割線------------------------------------");
Set<String> set=driver.getWindowHandles();  
Iterator<String> it=set.iterator();
while(it.hasNext())
{
System.out.println(it.next());      //{daf895e9-34f2-4e36-91f7-23a857a43498}
}
}
}
WebDriver中的方法:
  1. void get(String)  通過該方法訪問要訪問的網頁,  String通常爲網址  
  2.  findElement(By)    通過該方法獲取頁面元素  例如通過id、name、xpath等,返回WebElement
  3.  findElements(By)   通過該方法獲取頁面某一類元素,例如:標籤名   返回List集合
  4.  driver.getCurrentUrl()    返回當前頁的網址   返回String
  5. getPageSource()  返回頁面Html代碼  返回String
  6. getTitle()    返回頁面標題   String
  7. getWindowHandle()   返回如上例,看不懂。。。。。
  8. getWindowHandles()  如上。。。。
  9. manage() 返回類型Options
  10. navigate()   返回類型Navigation
  11. switchTo()   返回類型  TagetLocator

2 常用場景

  1  打開瀏覽器,訪問網址(如上例)

  2  頁面元素定位

package cn.caogao;

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Demo2 {

public static void main(String[] args) {
 
String url_1="http://www.baidu.com";
WebDriver driver=new FirefoxDriver();
        driver.get(url_1);

// WebElement element= driver.findElement(By.id("kw"));
// element.sendKeys("zhongguo");


// WebElement e=driver.findElement(By.linkText("新聞"));
// System.out.println(e.getTagName());
// e.click();

// WebElement e=driver.findElement(By.name("tj_trnuomi"));
// e.click();

// List<WebElement> e=driver.findElements(By.partialLinkText("百度"));
// for(WebElement element:e)
//         {
// System.out.println(element.getText());   //把百度設爲主頁關於百度百度推廣使用百度前必讀
// }


// List<WebElement> e=driver.findElements(By.tagName("a"));
// System.out.println(e.get(0).getTagName());

        WebElement e=driver.findElement(By.xpath("//input[@id='kw']"));
e.sendKeys("中國");
driver.findElement(By.id("su")).click();

}
}

常用獲取頁面元素的方法如上例,通過id(“kw”)、、linkText("新聞")、name("tj_trnuomi")、partialLinkText("百度")、tagName("a")、xpath("//input[@id='kw']")
還可以通過CSS定位,常用方法By.cssSelector(selector)、By.className(className);在此不做詳解

3  單擊按鈕(如上例所示)

使用click()方法

4  雙擊某個元素



  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章