当前位置: 澳门新濠3559 > 编程 > 正文

使用Selenium调用不同的浏览器,那么测试Web的第一

时间:2019-11-08 04:40来源:编程
3、使用Chrome浏览器的时候要在该项目的binDebug或binRelease目录下添加chromedriver.exe文件。 启动Chrome浏览器 在刚新建的OpenBrowser_Test类中添加如下方法: import org.openqa.selenium.WebDriver;import o

3、使用Chrome浏览器的时候要在该项目的binDebug或binRelease目录下添加chromedriver.exe文件。

启动Chrome浏览器

在刚新建的OpenBrowser_Test类中添加如下方法:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * Created by 米阳 on 7/9/2017.
 */
public class OpenBrowserTest {

    public static void main(String args[]) {
        openChrome();
    }

    private static void openChrome() {
//        设置系统变量,并设置chromedriver的路径为系统属性值
        System.setProperty("webdriver.chrome.driver", ".\drivers\chromedriver.exe");
//        实例化ChromeDriver
        WebDriver driver = new ChromeDriver();
    }

}

  用nuget获取chromedriver.exe:Install-Package Selenium.WebDriver.ChromeDriver

IEDriverServer下载和配置

注意实现:

IE的配置

配置IE,打开IE选项,打开安全标签,如下图,设置红框部分,设置每个区域的 “启动保护模式”,要嘛都勾选,要嘛都不勾选。

澳门新濠3559 1

IE 设置

InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;

Edge浏览器

win 10 系统微软推出了全新的Edge浏览器,同样上面提到Selenium 2.47.1版本开始开始支持这一浏览器,但是你的Win 10的build版本必须大于或者等于10240版本也就是说你的edge浏览器版本需要是10240版本以上,那如何去查看自己的系统版本,很简单打开控制台,输入ver,显示如下的。

澳门新濠3559 2

image.png

通常edge版本跟系统版本是一致的,但是如果你真的想查看edge版本,只需要打开edge的设置,便可看到:

澳门新濠3559 3

image.png

另外值得注意的是从微软官方 https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/webdriver-commands/ 中我们可以得知,如果你想使用XPath Selector(后面会讲这种重要的页面定位方式)那么你的build版本需要大于等于10586。

澳门新濠3559 4

Paste_Image.png

如果你的系统满足要求,那恭喜你可以继续往下。

    用nuget获取IEDriverServer.exe:Install-Package WebDriver.IEDriverServer.win32

启动Edge浏览器

我们还是直接在OpenBrowser_Test类中添加如下方法:

    public static void main(String args[]) {
        openEdge();
    }

    private static void openEdge() {
//        指定MicrosoftWebDriver路径
        System.setProperty("webdriver.edge.driver", ".\drivers\MicrosoftWebDriver.exe");
//        启动 Edge浏览器
        WebDriver driver = new EdgeDriver();
    }

 

Firefox 浏览器

火狐浏览器得分两种情况处理。

  1. 当火狐的版本<=47时,我们不需要额外的设置。当时如果安装时没有使用默认安装路径,那么和使用默认安装路径在代码处理上会有点不同:
  • 默认安装路径,我们可以直接实例化一个FirefoxDriver,便可:
    public static void main(String args[]) {
        openFirefoxDef();
    }

    private static void openFirefoxDef(){
 //       实例化 FirefoxDriver, 启动Firefox
        WebDriver driver = new FirefoxDriver();
    }
  • 如果火狐不是默认安装路径,你需要制定火狐按路径:
    public static void main(String args[]) {
        openFireFoxTest();
    }
    public void openFireFoxTest(){
//        指定firefox 安装路径
        System.setProperty("webdriver.firefox.bin","C:\Program Files (x86)\Mozilla Firefox\firefox.exe");
//        启动firefox浏览器
        WebDriver driver = new FirefoxDriver();
    }
  1. 当火狐版本V48+时,那么想启动火狐浏览器,我们得去下载火狐对应的geckodriver。下载地址:https://github.com/mozilla/geckodriver/releases,基本下载最新版便可。那么我看下这时我们如何启动Firefox:
    public static void main(String args[]) {
        openFirefoxByGeck();
    }
    private static void openFirefoxByGeck() {
//        设置系统变量,并设置 geckodriver 的路径为系统属性值
        System.setProperty("webdriver.gecko.driver", ".\drivers\geckodriver.exe");
//        实例化 FirefoxDriver
        WebDriver driver = new FirefoxDriver();
    }
 1 IWebDriver driver = null;
 2 string Browser =null;
 3 if (Browser.Equals("IE"))
 4 {
 5   InternetExplorerOptions options = new InternetExplorerOptions();
 6   options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
 7   driver = new InternetExplorerDriver(options);
 8 
 9 }
10 else if (Browser.Equals("Chrome".ToUpper()))
11 {
12   driver = new ChromeDriver();
13 }
14 else
15 {
16   driver = new FirefoxDriver();
17 }

准备

Edge跟IE类似,同样我们需要去下载对应的driver,下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/澳门新濠3559, ,需要注意的是根据你上面所查到的系统版本去下载对应的MicrosoftWebDriver,不然会报错。而且下载有两种一种是MicrosoftWebDriver.exe文件,一种是MicrosoftWebDriver.msi文件,如果你下载到的是.msi文件,那就双击运行按正常软件安装便可。如果你下载到的是MicrosoftWebDriver.exe文件,那就直接剪切放进项目的drivers文件夹中:

C#环境下,使用Selenium调用不同的浏览器,可以使用如下方法:

Chrome 浏览器

2、使用IE时要取消浏览器的保护模式,添加如下代码。

WebDriver 支持哪些浏览器

WebDriver 支持主流的浏览器包括IE,Chrome,Firefox,Safari等等,微软Win 10 新推出的Edge浏览器,Selenium 2.47.1+版本开始也得到支持。

我们在“Selenium 家族介绍“ 一节中已经知道WebDriver的工作原理,既每个浏览器都有对应的一个Driver,通过以之对应的Driver来驱动浏览器,那我们在启动浏览器前,得先完成浏览器的配置,下载各个浏览器对应的Driver文件。

1、使用IE浏览器的时候要在该项目的binDebug或binRelease目录下添加IEDriverServer.exe文件。

启动IE浏览器

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

/**
 * Created by 米阳 on 7/9/2017.
 */
public class OpenBrowserTest {

    public static void main(String args[]) {
        openIE();
    }

    private static void openIE() {
//        设置系统变量,并设置iedriver的路径为系统属性值
        System.setProperty("webdriver.ie.driver", ".\drivers\IEDriverServer.exe");
//        实例化 InternetExplorerDriver
        WebDriver driver = new InternetExplorerDriver();
    }

}

IE 浏览器

支持版本:

  • Selenium 2.0 支持IE 7~11
  • Selenium 3.0 支持IE 9+

我们已经创建了Selenium maven工程,下去开始真正进入到WebDriver的实战中。

既然WebDriver是用于Web的UI自动化测试,那么测试Web的第一步就是启动浏览器。那WebDriver都支持哪些浏览器呢?

ChromeDriver下载地址:

chromedriver下载时也需要下载到匹配的版本,特别是chrome浏览器和chromedriver的版本需要匹配。那如何查看自己的chrome需要下载哪个版本的chromedriver呢?通常使用最新版的chrome和最新版的chromedriver便可,但如果你并非都是最新版的,那么可以到:https://sites.google.com/a/chromium.org/chromedriver/downloads这里面去查看到你的哪个版本的chromedriver支持你所使用的chrome版本。

当确定好符合你使用的chromedriver版本时,可以到http://chromedriver.storage.googleapis.com/index.html,国内用户也可以到淘宝npm镜像(http://npm.taobao.org/mirrors/chromedriver)去下载对应版本的chromedriver版本。最后将下载下来的chromedriver解压后放于跟IEDriverServer.exe 相同位置,如下图:

澳门新濠3559 5

chromedriver.png

IEDriverServer下载:

我们可以从 http://selenium-release.storage.googleapis.com/index.html 下载,如果该地址打不开,可以用淘宝的镜像地址:https://npm.taobao.org/mirrors/selenium/。

IEDriverServer 下载时得注意,你用的是什么版本的Selenium 就在对应版本里面找IEDriverServer。
例如我们现在用的是Selenium 3.5.0版本,那么我们就到3.5文件里面去下载对应的IEDriverServer,下载时还得根据自己的系统和版本。例如我是win 64位,那么我可以下载IEDriverServer_x64_3.5.0.zip,下载完成后解压得到最终的IEDriverServer.exe文件。

下载完成后的,我们回到新建好的Senlenium maven项目工程(新建过程:http://www.jianshu.com/p/6ca7bbcdf2dd ),在项目名中我们可以新建个名为drivers的文件夹,再把已经下载好的IEDriverServer.exe文件复制到该新建的drivers文件夹中,最终工程目录结果如下:

澳门新濠3559 6

工程结构

PhantomJS 浏览器

phantomjs比较特殊的一个浏览器,它实现了一个无界面的webkit浏览器。虽然没有界面,但dom渲染、js运行、网络访问、canvas/svg绘制等功能都很完备,在页面抓取、页面输出、自动化测试等方面有广泛的应用。这个我们后面讲。

最后一个重要补充:
当我们new一个XXXDriver()时,我们启动的是一个全新的浏览器(没有预装插件,没有缓存,没有cookies等等)

编辑:编程 本文来源:使用Selenium调用不同的浏览器,那么测试Web的第一

关键词: