(四)selenium打开和关闭浏览器

一、Selenium简介

 

Selenium3.0主要变更特性:

①移除seleniumRC

②FireFox和Safari推出了自己的driver(geckodriver 和 Safaridriver)

③Selenium3 支持 IE9+,Selenium2 支持 7-11

④全面拥抱java8

 

 二、Selenium实现自动打开浏览器

1.打开火狐浏览器

注意:火狐48以下版本可以直接使用webdriver自带的进行打开浏览器

          火狐48以上版本则需要使用版本对应的geckodriver

public class OpenBrowserTest {
    @Test
    /*火狐是默认安装在C盘的启动方法*/
 /*   public void openFirefox1(){
        WebDriver webDriver = new FirefoxDriver();
    }*/
    /*火狐不是默认安装在C盘 需要写上路径*/
    public void openFirefox2(){
        //指定firefox 安装路径
        System.setProperty("webdriver.firefox.bin","F:\\Program Files (x86)\\Firefox\\Mozilla Firefox\\firefox.exe");
        //启动firefox浏览器
        WebDriver webDriver = new FirefoxDriver();
    }
}

2.打开chrome浏览器

右上角->帮助-->关于chrome-->查看当前chrome版本-->到指定的地址    去下载对应的ChromeDriver

附chromedriver与chrome的对应关系表:

chromedriver版本支持的Chrome版本
v2.40v66-68
v2.39v66-68
v2.38v65-67
v2.37v64-66
v2.36v63-65
v2.35v62-64
v2.34v61-63
v2.33v60-62
v2.32v59-61
v2.31v58-60
v2.30v58-60
v2.29v56-58
v2.28v55-57
v2.27v54-56
v2.26v53-55
v2.25v53-55
v2.24v52-54
v2.23v51-53
v2.22v49-52
v2.21v46-50
v2.20v43-48
v2.19v43-47
v2.18v43-46
v2.17v42-43
v2.13v42-45
v2.15v40-43
v2.14v39-42
v2.13v38-41
v2.12v36-40
v2.11v36-40
v2.10v33-36
v2.9v31-34
v2.8v30-33
v2.7v30-33
v2.6v29-32
v2.5v29-32
v2.4v29-32

 

映射表转自:

http://blog.csdn.net/huilan_same/article/details/51896672

从对应的地址下载 与自己的浏览器对应的 chromedriver版本:http://chromedriver.storage.googleapis.com/index.html

 

 project-->右键-->new--->Directory-->drivers-->把当前下载的拉进来--->则这个目录为写在webdriver内的property的目录。

 

 @Test
    public void openChrome(){
        /*将下载好的chrome驱动拉进来,输入驱动路径*/
            System.setProperty("webdriver.chrome.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\chromedriver.exe");
            WebDriver webDriver = new ChromeDriver();
    }

 

3.打开IE浏览器

进入指定页下载对应版本的IEDriver 进入索引页,首先选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致 建议选win32 如下:

IEDriverServer_Win32_2.53.0.zip

下载地址:http://selenium-release.storage.googleapis.com/index.html

操作与下载chromedriver类似,下载完后解压,解压后路径复制进对应的driver地址。

@Test
    public void openIE(){
        /*将下载好的IE驱动拉进来建议下载与webdriver一样的32位的版本,输入驱动路径*/
        System.setProperty("webdriver.ie.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\IEDriverServer.exe");
        WebDriver webDriver = new InternetExplorerDriver();
    }

启动ie报错:

Started InternetExplorerDriver server (32-bit)
2.53.0.0
Listening on port 27578
Only local connections are allowed

org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Browser zoom level was set to 150%. It should be set to 100% (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 3.17 seconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'DESKTOP-UA0J10K', ip: '192.168.0.102', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_181'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver

针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。如下图所示:

 右上角设置->internet选项->安全->

 

 点击窗口最上面-->选择显示菜单栏-->点击左上角-->工具--->查看当前显示是否为100%
浏览器的缩放比例必须设置为100%,这样元素定位才不会出现问题。

针对IE10和更高的版本,必须在IE选项设置中的高级页中,取消增强保护模式。

 开始”→“运行”命令,在“运行”对话框的“打开”栏中输入“regedit 命令”(windows+R)然后单击“确定1、查找到“项”——“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace”
 
 
 针对IE11,需要修改注册表。如果是32位的windows,key值为
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE
64位的windows,key值为
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE
如果key值不存在,就添加。之后在key内部创建一个iexplorer.exe,DWORD类型,值为0。

 

 4.windows10 才自带的浏览器 edge,不是windos10是没有这个浏览器的
不同的edge版本 下载的 对应版本也是不一样。
右上角....----> 设置 -->  拉到最下面查看当前edge的版本--17134

上对应的网站下载对应的driver

 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

往下拉,可以看到对应版本下载,放到指定文件夹

 @Test
    public void openEdge(){
        System.setProperty("webdriver.edge.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\MicrosoftWebDriver.exe");
        WebDriver webDriver =new EdgeDriver();
    }

 

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;

public class OpenBrowserTest {
    @Test
    /*火狐是默认安装在C盘的启动方法*/
   /* public void openFirefox1(){
        WebDriver webDriver = new FirefoxDriver();
    }*/
    /*火狐不是默认安装在C盘 需要写上路径*/
    public void openFirefox2(){
        //指定firefox 安装路径
        System.setProperty("webdriver.firefox.bin","F:\\Program Files (x86)\\Firefox\\Mozilla Firefox\\firefox.exe");
        //启动firefox浏览器
        WebDriver webDriver = new FirefoxDriver();
    }
    @Test
    public void openChrome(){
        /*将下载好的chrome驱动拉进来,输入驱动路径*/
            System.setProperty("webdriver.chrome.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\chromedriver.exe");
            WebDriver webDriver = new ChromeDriver();
    }
    @Test
   /* DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
    ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
    WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);*/
    public void openIE(){
        /*将下载好的IE驱动拉进来建议下载与webdriver一样的32位的版本,输入驱动路径*/
        System.setProperty("webdriver.ie.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\IEDriverServer.exe");
        WebDriver webDriver = new InternetExplorerDriver();
    }
    @Test
    public void openEdge(){
        System.setProperty("webdriver.edge.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\MicrosoftWebDriver.exe");
        WebDriver webDriver =new EdgeDriver();
    }

}

 

 三、selenium关闭浏览器

前提是先下载了对应的浏览器的driver并能进行正常打开浏览器

关闭当前窗口

driver.close();

关闭当前窗口并退出

driver.quit();

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ClosedBrowserTest {
    @Test
    public void closedChrome() throws InterruptedException {
        //设置chrome路径
        System.setProperty("webdriver.chrome.driver","D:\\Program Files\\Java\\Webautomation\\drivers\\chromedriver.exe");
        //实例化chromeDriver
        WebDriver driver = new ChromeDriver();
        //等待5000ms,马上开马上关闭则不明显
        Thread.sleep(5000);
        //关闭当前窗口
        //driver.close();
        //完全退出浏览器 避免浏览器资源被耗尽,一般只会使用driver.close();
        driver.quit();
    }
}

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/chenxiaomeng/p/9574991.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值