Webdriver学习笔记(二)浏览器的基本操作

1.webdriver对浏览器的支持
     1.1HtmlUnitDriver
          优点:打开和运行速度都很快,而且不会实际打开浏览器。
          缺点:对JS支持不好,而且经常出现找不到页面的元素。
          代码: WebDriver driver =  new  HtmlUnitDriver();
     1.2FireFoxDriver
          优点:对JS支持很好,浏览器打开后运行速度也很快。
           缺点:启动很慢,很慢,运行速度没HtmlUnitDriver快。
          代码: WebDriver driver =  new  FirefoxDriver();
     1.3InternerExplorerDriver
          优点:对JS支持很好,也可以很直观看到执行情况。
          缺点:启动虽比FF快,但是运行是最慢的,而且对CSS,XPATH的支持也不是非常好。
          代码: WebDriver driver=  new  InternetExplorerDriver();
     1.4ChromeDriver
          优点:打开和运行速度都挺快的,而且对js支持也很好,也很直观可以看到模拟效果
          缺点:貌似就没HtmlUnitDriver快
          代码: WebDriver driver=  new  ChromeDriver();
     1.5等等。。。
例子:最后一起给

2.打开测试页面
     说完打开浏览器后,接着的操作就是打开需要测试的页面。
     打开测试页面又两种方法:
      ① driver.get(  "url"  );
      ② driver.navigate().to(  "url"  );
两种方法开的页面表面上没啥区别,实质有些区别。navigate(). to直接打开没有逻辑和校验,get会加入校验通常习惯用get方法。
不管是用to还是用get方法打开页面,都会自动等待页面加载完毕后再执行下一句,也就是浏览器的状态栏显示“完成”时再往下执行。
例子:最后一起给

3.等待(Thread.sleep(time))
     等待功能主要是上一行代码执行结束后,下一行代码操作开始执行之间的时间间隔,time参数为毫秒。

4.浏览器的常见操作
     3.1前进和后退(forward()/back())
          前进和后退就是模拟浏览器的前进后退查看那历史。
     3.2刷新(refresh())
          相当于浏览器按F5的操作。
     3.3获取页面Title(getTitle())
          获取当前页面的title值。
     3.4获取页面的URL(getCurrentUrl())
          获取当前页面的URL值。
 
5.关闭浏览器
     关闭浏览器同样有两种方式:
          ①. driver.close(); 仅仅关闭当前的页面
          ②. driver.quit();关闭所有的窗口,结束测试
例子:
import java.io.File;

import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class OpenBrowser {
	/**
	 * 打开IE浏览器,并打开百度首页
	 */
	@Test
	public void openIEBrowser() {
		// 设置IEDriverServer的路径,根据你具体存放位置来设置路径
		System.setProperty("webdriver.ie.driver", "C:\\holmosconf\\driverServers\\IEDriverServer.exe");
		// 打开IE
		WebDriver driver = new InternetExplorerDriver();
		// 用get的方法打开百度首页
		driver.get("http://www.baidu.com");
		// 刷新当前页面
		driver.navigate().refresh();
		// 关闭当前页面
		driver.close();
	}

	/**
	 * 打开Chrome浏览器,并打开百度地址
	 */
	@Test
	public void openChromeBrowser() {
		// 设置chromedriver的路径,根据你具体存放位置来设置路径
		System.setProperty("webdriver.chrome.driver", "C:\\holmosconf\\driverServers\\chromedriver.exe");
		// 启动Chrome浏览器
		WebDriver driver = new ChromeDriver();
		// to方式打开百度首页
		driver.navigate().to("http://www.baidu.com");
		// 获取当前页面的URL,并输出
		System.out.println(driver.getCurrentUrl());
		// 为了看效果,我们等待3S钟
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		// get方式打开谷歌首页
		driver.get("http://www.google.com.hk");
		// 获取当前页面的URL,并输出
		System.out.println(driver.getCurrentUrl());
		// 为了看效果,我们等待3S钟
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		// 浏览器后退
		driver.navigate().back();
		// 获取当前页面的URL,并输出
		System.out.println(driver.getCurrentUrl());
		 // 为了看效果,我们等待3S钟
        try {
              Thread. sleep(3000);
       } catch (InterruptedException e) {
              e.printStackTrace();
       }
		// 浏览器前进
		driver.navigate().forward();
		// 获取当前页面的URL,并输出
		System.out.println(driver.getCurrentUrl());
		// 结束测试
		driver.quit();
	}

	/**
	 * 打开firefox浏览器,并打开百度地址
	 */
	@Test
	public void openFFDriver() {
		// 方法一
		// 设置火狐的路劲,根据你具体存放位置来设置路径
		System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
		// 启动火狐浏览器
		WebDriver driver = new FirefoxDriver();
		// 打开百度页面
		driver.get("http://www.baidu.com");
		// 关闭页面
		driver.close();

		// 方法二
		// 设置火狐的路劲,根据你具体存放位置来设置路径
		File pathToFirefoxBinary = new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
		FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
		// 启动火狐浏览器
		WebDriver driver1 = new FirefoxDriver(firefoxbin, null);
		// 打开谷歌页面
		driver1.get("http://www.google.com.hk");
		// 关闭页面
		driver1.close();
	}

	/**
	 * 用HtmlUnitDriver方式打开,并打开百度地址
	 */
	@Test
	public void openHtmlDriver() {
		// 用HtmlUnitDriver方式打开
		WebDriver driver = new HtmlUnitDriver();
		// 打开百度页面
		driver.get("http://www.baidu.com");
		// 获取到当前页面的title,并输出
		System.out.println(driver.getTitle());
		driver.quit();
	}
}



你可能感兴趣的:(selenium,2.0)