webdriverAPI详解

来源:互联网 发布:行知实践园感悟 编辑:程序博客网 时间:2024/05/17 05:03

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  双击某个元素



  

0 0
原创粉丝点击