【Selenium】使用selenium进行自动化测试(上)

文章目录

      • selenium的下载地址
      • 在eclipse中导入selenium的jar
      • 一个简单的例子(基于火狐浏览器)
      • IE浏览器下自动化环境的搭建
      • Chrome浏览器下自动化环境的搭建
      • Selenium相关链接整理
      • 元素定位

selenium的下载地址

Selenium官网:
https://docs.seleniumhq.org/download/
Selenium各版本下载:
https://selenium-release.storage.googleapis.com/index.html

IE驱动文件:
http://selenium-release.storage.googleapis.com/index.html

chrome driver下载
https://chromedriver.storage.googleapis.com/index.html
chrome浏览器各版本下载
http://www.chromedownloads.net/chrome64win/

我的百度云盘分享:
链接:https://pan.baidu.com/s/1R2DdAI8RIExvstC_-0RaJg 密码:e1zc

在eclipse中导入selenium的jar

在eclipse的java project中创建一个新的文件夹(folder),命名为lib,然后将刚刚下载的selenium中的如下jar全部拷贝到lib文件夹下。
【Selenium】使用selenium进行自动化测试(上)_第1张图片
将上图lib中的所有jar和下面两个jar一起拷贝到java项目中lib文件夹下。
【Selenium】使用selenium进行自动化测试(上)_第2张图片
拷贝完成后全选这些jar,右键加到libraries中,操作如下图:
【Selenium】使用selenium进行自动化测试(上)_第3张图片
这样这些jar就添加到了类库中。
注意:如果,你使用了maven项目管理工具,那么你可以直接在maven的pom.xml中添加selenium的依赖。


    org.seleniumhq.selenium
    selenium-java
    2.53.1

一个简单的例子(基于火狐浏览器)

下面我们写一个简单的例子,步骤如下:

  1. 打开火狐浏览器
  2. 打开百度
  3. 输入关键字
  4. 点击百度一下按钮
  5. 退出浏览器

代码如下:

public static void main(String[] args) {
		//设置驱动文件路径
		System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
		// 自动启动浏览器
		WebDriver driver=new FirefoxDriver();
		//自动输入url
		driver.get("http://www.baidu.com");
		//自动找到百度的输入框,输入相关内容
		WebElement input=driver.findElement(By.id("kw"));
		input.sendKeys("大家好");
		//自动找到百度一下按钮,点击
		driver.findElement(By.id("su")).click();
		//自动检查查询的内容是否符合要求
		//自动关闭浏览器
		driver.quit();
	}

注:selenium版本是3.x的,搭建火狐浏览器的自动化测试环境就需要驱动包了。

IE浏览器下自动化环境的搭建

首先下载IE驱动,与selenium版本保持相同即可。
前面有下载链接,这里再提一下:http://selenium-release.storage.googleapis.com/index.html
因为我的selenium版本是2.53.1,所以我下载同版本的IE驱动:
【Selenium】使用selenium进行自动化测试(上)_第4张图片
下载完成之后解压将会得到一个IEDriverServer.exe可执行文件,将其复制到maven project下的resources文件夹中。
再编写如下代码:

public static void main(String[] args) {
		//设置驱动文件路径
		System.setProperty("webdriver.ie.driver", "src/main/resources/IEDriverServer.exe");
		DesiredCapabilities capabilities=new DesiredCapabilities();
		//忽略安全域的错误
		capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
		//忽略缩放
		capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING,true);
		//启动浏览器
		InternetExplorerDriver driver=new InternetExplorerDriver(capabilities);
		//输入url
		driver.get("http://www.baidu.com");
		//找到百度输入框,输入要查找的内容
		driver.findElement(By.id("kw")).sendKeys("la");
		//找到“百度一下”按钮,点击 
		driver.findElement(By.id("su")).click();
		//关闭浏览器
		Thread.sleep(2000);
		driver.quit();
	}

执行时我们发现有以下错误:

Exception in thread "main" org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)

解决方法:
在这里插入图片描述

第二个解决方法就是加上忽略浏览器保护模式的代码:

public static void main(String[] args) {
		System.setProperty("webdriver.ie.driver", "src/IEDriverServer.exe");
		DesiredCapabilities capabilities=new DesiredCapabilities();
		//忽略浏览器保护模式的设置
		capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
		//通过驱动来打开浏览器
		WebDriver driver=new InternetExplorerDriver(capabilities);
		driver.get("http://www.baidu.com");
	}

这样就可以运行成功啦。但是有些童鞋还会报这种浏览器缩放错误。

Browser zoom level was set to 125%. It should be set to 100% (WARNING: The server did not provide any stacktrace inf

解决方法:
将以下代码放在webdriver之前。

//忽略浏览器的缩放设置
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);

Chrome浏览器下自动化环境的搭建

首先我们要去下载一个谷歌浏览器的驱动,网址在这里:
https://chromedriver.storage.googleapis.com/index.html
如果这个网址不行,还可以在这里:
http://npm.taobao.org/mirrors/chromedriver/

然后呢根据你的谷歌浏览器的版本选择对应的驱动,对照表如下:

ChromeDriver 版本 Chrome 浏览器版本
ChromeDriver v2.46 (2019-02-01) Chrome v71-73
ChromeDriver v2.45 (2018-12-10) Chrome v70-72
ChromeDriver v2.44 (2018-11-19) Chrome v69-71
ChromeDriver v2.43 (2018-10-16) Chrome v69-71
ChromeDriver v2.42 (2018-09-13) Chrome v68-70
ChromeDriver v2.41 (2018-07-27) Chrome v67-69
ChromeDriver v2.40 (2018-06-07) Chrome v66-68
ChromeDriver v2.39 (2018-05-30) Chrome v66-68
ChromeDriver v2.38 (2018-04-17) Chrome v65-67
ChromeDriver v2.37 (2018-03-16) Chrome v64-66
ChromeDriver v2.36 (2018-03-02) Chrome v63-65
ChromeDriver v2.35 (2018-01-10) Chrome v62-64

我的谷歌浏览器版本是73,所以下载2.46版本;
火狐浏览器的驱动对照表请参考官方更改日志;
如果有时候selenium有一些代码无法执行成功,可能就是firefox版本不一致,firefox旧版下载地址;
我这里使用的是2.53.1的selenium,对应的firefox版本应该是46.0以下。
【Selenium】使用selenium进行自动化测试(上)_第5张图片
【Selenium】使用selenium进行自动化测试(上)_第6张图片
解压后照样将chromedriver.exe文件复制到java project的src文件夹下。
然后下面的代码就是谷歌浏览器下环境的搭建:

System.setProperty("webdriver.chrome.driver","src/chromedriver.exe" );
WebDriver driver=new ChromeDriver();

Selenium相关链接整理

selenium官网下载页面:http://www.seleniumhq.org/download/
selenium版本下载:http://selenium-release.storage.googleapis.com/index.html

chrome driver下载地址:https://chromedriver.storage.googleapis.com/index.html
chrome driver淘宝镜像:http://npm.taobao.org/mirrors/chromedriver
chrome浏览器各版本下载地址:http://www.chromedownloads.net/chrome64win/
禁止谷歌浏览器更新:https://jingyan.baidu.com/article/76a7e409f2137afc3b6e15be.html

firefox driver下载地址:https://github.com/mozilla/geckodriver/releases/
firefox各版本下载地址:http://ftp.mozilla.org/pub/firefox/releases/

元素定位

你可能感兴趣的:(自动化测试)