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("-----------------------------------分割線------------------------------------");
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("-----------------------------------分割線------------------------------------");
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}
}
}
}
Iterator<String> it=set.iterator();
while(it.hasNext())
{
System.out.println(it.next()); //{daf895e9-34f2-4e36-91f7-23a857a43498}
}
}
}
WebDriver中的方法:
- void get(String) 通過該方法訪問要訪問的網頁, String通常爲網址
- findElement(By) 通過該方法獲取頁面元素 例如通過id、name、xpath等,返回WebElement
- findElements(By) 通過該方法獲取頁面某一類元素,例如:標籤名 返回List集合
- driver.getCurrentUrl() 返回當前頁的網址 返回String
- getPageSource() 返回頁面Html代碼 返回String
- getTitle() 返回頁面標題 String
- getWindowHandle() 返回如上例,看不懂。。。。。
- getWindowHandles() 如上。。。。
- manage() 返回類型Options
- navigate() 返回類型Navigation
- 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();
}
}
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()方法