zoukankan      html  css  js  c++  java
  • (四)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.40 v66-68
    v2.39 v66-68
    v2.38 v65-67
    v2.37 v64-66
    v2.36 v63-65
    v2.35 v62-64
    v2.34 v61-63
    v2.33 v60-62
    v2.32 v59-61
    v2.31 v58-60
    v2.30 v58-60
    v2.29 v56-58
    v2.28 v55-57
    v2.27 v54-56
    v2.26 v53-55
    v2.25 v53-55
    v2.24 v52-54
    v2.23 v51-53
    v2.22 v49-52
    v2.21 v46-50
    v2.20 v43-48
    v2.19 v43-47
    v2.18 v43-46
    v2.17 v42-43
    v2.13 v42-45
    v2.15 v40-43
    v2.14 v39-42
    v2.13 v38-41
    v2.12 v36-40
    v2.11 v36-40
    v2.10 v33-36
    v2.9 v31-34
    v2.8 v30-33
    v2.7 v30-33
    v2.6 v29-32
    v2.5 v29-32
    v2.4 v29-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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace”
     
     
     针对IE11,需要修改注册表。如果是32位的windows,key值为
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet 
    ExplorerMainFeatureControlFEATURE_BFCACHE
    64位的windows,key值为
    HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftInternet 
    ExplorerMainFeatureControlFEATURE_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();
        }
    }

     

  • 相关阅读:
    201871010115 马北 《面向对象程序设计(java)》 第67周学习总结
    201871010115马北《面向对象程序设计(java)》第一周学习总结
    《面向对象程序设计(Java)》第四周学习总结
    201871010115——马北《面向对象程序设计JAVA》第二周学习总结
    第十一周作业
    《面向对象程序设计(java)》第十周学习总结
    201871010115 马北 第八周作业
    FPGA开发全攻略——FPGA发展以及赛灵思系列产品
    嵌入式系统词汇表
    FPGA开发全攻略——FPGA内部结构
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/9574991.html
Copyright © 2011-2022 走看看