Selenium java 基本操作
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();
2.打开测试页面
说完打开浏览器后,接着的操作就是打开需要测试的页面。
打开测试页面又两种方法:
①driver.get("url");
②driver.navigate().to("url");
两种方法开的页面表面上没啥区别,实质有些区别。navigate().to直接打开没有逻辑和校验,get会加入校验通常习惯用get方法。不管是用to还是用get方法打开页面,都会自动等待页面加载完毕后再执行下一句,也就是浏览器的状态栏显示“完成”时再往下执行。例子:最后一起给
3.等待(Thread.sleep(time))
等待功能主要是上一行代码执行结束后,下一行代码操作开始执行之间的时间间隔,time参数为毫秒。
4.浏览器的常见操作
4.1刷新(refresh())
相当于浏览器按F5的操作。
4.2前进和后退(forward()/back())
前进和后退就是模拟浏览器的前进后退查看那历史。
4.3获取页面Title(getTitle())
获取当前页面的title值。
4.4获取页面的URL(getCurrentUrl())
获取当前页面的URL值。
4.5 最大化浏览器(maximize)
①.driver.close(); 仅仅关闭当前的页面
②.driver.quit();关闭所有的窗口,结束测试
4.6 关闭浏览器同样有两种方式:
①.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();
}
}