您的位置:首页 > 其它

Selenium + Webdriver 学习(二) 各种浏览器简单操作

2014-11-06 10:51 441 查看
打开一个测试浏览器
对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏览器进行操作。但要注意的是,因为Chrome Driver是Chromium项目自己支持和维护的,所以你必需另外下载安装Chrome Driver,详细介绍查下他们的wiki

以下是对FF\ IE(7.8.9.10)\chrome 浏览器的例子
Java代码:

[java]
view plaincopyprint?





  
/*** This class  open browser 
* @author annie.wang   
*/  
package com.annie.test;  
  
import java.io.File;  
  
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.ie.InternetExplorerDriver;  
import org.openqa.selenium.remote.DesiredCapabilities;  
  
public class OpenBrowser {  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub
  
          
          /** default open firefox  ***/   
         WebDriver diver = new FirefoxDriver();    
        System.out.println("success open the Firefox01");  
            
        //打开指定路径的firefox,方法1   
        System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");     
        WebDriver dr = new FirefoxDriver();    
        System.out.println("success open the Firefox02");  
            
        //打开指定路径的firefox,方法2
  
         File pathToFirefoxBinary = new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");      
        FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);      
        WebDriver driver1 = new FirefoxDriver(firefoxbin,null);    
        System.out.println("success open the Firefox03");  
        /** open IE browser    */  
        DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();  
        ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);  
        WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);//    Setting the IE browser security
  
       System.setProperty("webdriver.ie.driver","C:\\Windows\\IEDriverServer.exe");  
       oWebDriver.get("http://www.google.com");  
       System.out.println("success open the IE");  
        /**open chrome browser  */  
       System.setProperty("webdriver.chrome.driver","C:\\Windows\\chromedriver.exe");      
       // System.setProperty("webdriver.chrome.bin","C:\\Windows\\chromedriver.exe"); 
  
        WebDriver chdr=new ChromeDriver();   
         /** close the browser   1.method :quit 
          * driver.quit();  
          * close the browser   2.method :close  
          * driver.close();   
          */  
          
        
        /**得到当前页面url  
         * 返回当前浏览器的窗口句柄 */  
        /* String currentUrl = driver.getCurrentUrl();   
   
        //输出title和currenturl   
        System.out.println("页面title:"+title+"\n"+"当前URL"+currentUrl);  
      //  ((JavascriptExecutor)driver).executeScript("alert(\"hello,this is a alert!\")");  
          
        String windowHandle=driver.getWindowHandle() ;  
        System.out.println("当前窗口句柄:"+windowHandle+"\n"+windowHandle);  
        //String windowHandles=driver.getWindowHandles(Set<STRING>); // 返回所有浏览器的窗口句柄 
       // String pageSource=driver.getPageSource()  ;  //返回当前页面的源码 
       // System.out.println(pageSource+"\n"+pageSource);  
        */  
    }    
    
}    
</STRING>  

/*** This class  open browser
* @author annie.wang
*/
package com.annie.test;

import java.io.File;

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.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class OpenBrowser {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

/** default open firefox  ***/
WebDriver diver = new FirefoxDriver();
System.out.println("success open the Firefox01");

//打开指定路径的firefox,方法1
System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
WebDriver dr = new FirefoxDriver();
System.out.println("success open the Firefox02");

//打开指定路径的firefox,方法2
File pathToFirefoxBinary = new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
WebDriver driver1 = new FirefoxDriver(firefoxbin,null);
System.out.println("success open the Firefox03");
/** open IE browser    */
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);// 	Setting the IE browser security
System.setProperty("webdriver.ie.driver","C:\\Windows\\IEDriverServer.exe");
oWebDriver.get("http://www.google.com");
System.out.println("success open the IE");
/**open chrome browser  */
System.setProperty("webdriver.chrome.driver","C:\\Windows\\chromedriver.exe");
// System.setProperty("webdriver.chrome.bin","C:\\Windows\\chromedriver.exe");
WebDriver chdr=new ChromeDriver();
/** close the browser   1.method :quit
* driver.quit();
* close the browser   2.method :close
* driver.close();
*/

/**得到当前页面url
* 返回当前浏览器的窗口句柄 */
/* String currentUrl = driver.getCurrentUrl();

//输出title和currenturl
System.out.println("页面title:"+title+"\n"+"当前URL"+currentUrl);
//  ((JavascriptExecutor)driver).executeScript("alert(\"hello,this is a alert!\")");

String windowHandle=driver.getWindowHandle() ;
System.out.println("当前窗口句柄:"+windowHandle+"\n"+windowHandle);
//String windowHandles=driver.getWindowHandles(Set); // 返回所有浏览器的窗口句柄
// String pageSource=driver.getPageSource()  ;  //返回当前页面的源码
// System.out.println(pageSource+"\n"+pageSource);
*/
}

}

IE 中 尤其注意,可能会报以下异常:


 
这个异常是由于IE浏览器的安全权限和zoom造成的,以下3个步骤方可解决
1. 加入此代码片段:

[java]
view plaincopyprint?





DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();  
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);  
WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);//Setting the IE browser security  

DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);//Setting the IE browser security

2. 设置Internet Option Enable 选项 勾掉



3. 设置zoom 为100%



 
运行成功,注意IE9下有异常 。尚未有解决方案,但是不影响IE9 测试功能


小结
从上面代码可以看出操作浏览器的主要方法都来自org.openqa.selenium.WebDriver这个接口中。看了一下源代码这些方法都 是在org.openqa.selenium.remote.RemoteWebDriver这个类中实现的,然后不同浏览的driver类继承 RemoteWebDriver。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: