博学而笃定,切问而近思

启动浏览器的问题

上一篇 / 下一篇  2013-12-02 15:08:31 / 个人分类:Selenium

一直用firefox,以为使用ie和chrome和ff一样,今天动手做了下,发现还是有些不同的,看来动手是最好的老师。

Selenium是最初在firefox和ie做起来的插件,但由于chrome的普及,我们平时也会用到chrome,所以一般有3种浏览器,我们碰到
1. firefox
如果firefox是默认安装的话,简单:
WebDriver dr = new FirefoxDriver(); 
如果是指定路径安装,需要首先设置路径,
e.g. 
System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe"); //设置路径

WebDriver dr = new FirefoxDriver();

2. ie
要使用ie自动化,是需要iedriver,具体的下载路径:http://code.google.com/p/selenium/wiki/

System.setProperty("webdriver.ie.driver", "C:\\Program Files\\Internet Explorer\\IEDriverServer_Win32_2.37.0\\IEDriverServer.exe");

WebDriver dr = new InternetExplorerDriver();

3. chrome
要使用chrome自动化,是需要chromedriver,需要下载这个插件,具体的路径:http://code.google.com/p/selenium/wiki/
System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Google\\Chrome\\chromedriver_win32\\chromedriver.exe");

WebDriver dr= new ChromeDriver();

执行以上代码你会发现ChromeDriver仅是在创建是启动,调用quit时关闭浏览器,ChromeDriver是轻量级的服务若在一个比较大的测试套件中频繁的启动关闭,会增加一个比较明显的延时导致浏览器进程不被关闭的情况发生,为了避免这一状况我们可以通过ChromeDriverService来控制ChromeDriver进程的生死,达到用完就关闭的效果避免进程占用情况出现(Running the server in a child process)。
具体实现如下:
ChromeDriverService service = new ChromeDriverService.Builder() .usingChromeDriverExecutable(new File("E:\\Selenium WebDriver\\chromedriver_win_23.0.1240.0\\chromedriver.exe")).usingAnyFreePort().build();
service.start();
driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.quit();
// 关闭 ChromeDriver 接口
service.stop();

TAG:

 

评分:0

我来说两句

Open Toolbar