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");

01

    两种方法开的页面表面上没啥区别,实质有些区别。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();关闭所有的窗口,结束测试

QQ截图20170608100949

    QQ截图20170608100903

例子:

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();  
    }  
}  


(1)