原文地址https://www.cnblogs.com/zmhsoup/p/5249663.html
目录
第三步 在Eclipse中安装TestNG
第四步 下载Selenium IDE、SeleniumRC、IEDriverServer
第五步 下载Firefox、安装Selenium IDE、firebug、Xpath checker、Xpath finder插件
第六步 启动SeleniumRC
第七步 Eclipse执行Selenium的Java实例
第八步 TestNG执行Selenium的Java实例
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/
1、下载步骤:
2、配置环境变量:
JAVA_HOME = E:\Java\Java\jdk1.7.0_15
PATH = %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH = .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
注:上面这行的“.”不能忽略掉了。
3、验证是否安装成功:
第二步 下载Eclipse
下载地址:http://www.eclipse.org/downloads/
第三步 在Eclipse中安装TestNG
第1种方法:直接安装 Help->Install New Software
最后重启eclipse.
第2种方法:离线安装
1.下载附件(eclipse-testng离线包.zip),并解压;
2.将解压后的文件..\eclipse-testng离线包\features\目录下的文件夹org.testng.eclipse_6.8.6.20130607_0745放到eclipse--》features目录下;
3.将解压后的文件..\eclipse-testng离线包\org.testng.eclipse_6.8.6.20130607_0745文件夹放到eclipse--》plugins目录下;
4.重启eclipse.
验证方法:file-->new-->other-->TestNg
第四步 下载Selenium IDE、SeleniumRC、IEDriverServer
下载地址:http://www.seleniumhq.org/download/
1. Selenium IDE:selenium-ide-2.5.0.xpi 用来在Firefox上录制脚本。
2.Selenium RC:selenium-server-standalone-2.40.0.jar 模拟服务器端,selenium 1.0执行脚本时需要单独启动该jar包, selenium webdriver无需单独启动。
3.IEDriverServer:IEDriverServer_Win32_2.40.0.zip IE驱动
这里,将下载得到的所有文件,全存放在d:\xxx\selenium下面,方便管理:
第五步 下载Firefox、安装Selenium IDE、firebug、Xpath checker、Xpath finder插件
下载地址:http://www.firefox.com.cn/download/
安装完Firefox后,打开Firefox:
1、安装Selenium IDE:
把前面下载的selenium-ide-2.5.0xpi拖放到Firefox,弹出下图后,安装即可。
2、安装firebug:工具-->附加组件,搜索firebug、Xpath,安装,重启火狐浏览器。
验证安装成功:
第六步 启动SeleniumRC
selenium 1.0需要启动单独rc,webdriver则不需要启动。(具体原因可自行百度或者参见我其他学习笔记)
启动seleniumRC的方法:
cmd命令行进入selenium-server-standalone-2.40.0.jar存放目录(或者进入selenium-server-standalone-2.40.0.jar存放目录然后在文档路径里输入cmd),然后输入如下命令
java -jar selenium-server-standalone-2.40.0.jar
为了方便,可以写一个批处理文件来执行,Run_selenium.bat,内容如下:
@echo off cd E:\eclipse\selenium E:
java -jar selenium-server-standalone-2.40.0.jar
第七步 Eclipse执行Selenium的Java实例
1.新建java工程:File-->new-->other-->Java Project
输入工程名,完成之后弹出选择视图模式的确认框,可以选NO。
2.引入Selenium相关的包:
在MyTest上右键,Properties-->Java Build Path-->Libraries-->Add External Jars
3.新建package和class:
在src上右键,new->package(名称为:Selenium_Java)
在Selenium_Java上右键,new->class(名称为:runasjavaapplication.java):
4.用selenium webdriver写代码如下:
可以打开不同的浏览器,用以开展兼容性测试。
注:用ie浏览器打开时会有个报错:
解决办法是讲注释掉的30-34行的代码取消注释,注释掉36行的代码即可(代码中29行应为:System.setProperty("webdriver.chrome.driver", file_chrome.getAbsolutePath()); 46行最好写成:my_dr.get("https://www.baidu.com");)。
1 package Selenium_Java; 2 3 import java.io.File; 4 5 import org.openqa.selenium.By; 6 import org.openqa.selenium.WebDriver; 7 import org.openqa.selenium.chrome.ChromeDriver; 8 import org.openqa.selenium.firefox.FirefoxDriver; 9 import org.openqa.selenium.ie.InternetExplorerDriver; 10 import org.openqa.selenium.remote.CapabilityType; 11 import org.openqa.selenium.remote.DesiredCapabilities; 12 import org.testng.Assert; 13 14 15 /** 16 * @author : zmh 17 * @version :1.0 18 * @date :2016年03月06日 下午3:00:22 19 */ 20 public class runasjavaapplication { 21 22 public static void main(String[] args) throws InterruptedException { 23 24 //-----------------------------打开火狐浏览器------------------------------------------------ 25 //WebDriver my_dr = new FirefoxDriver();// 打开火狐浏览器 原生支持的浏览器,但是不支持火狐高级的版本 26 27 //-----------------------------打开Chrome浏览器--------------------------------------------- 28 File file_chrome = new File("C:/Program Files/Google/Chrome/Application/chromedriver.exe"); 29 System.setProperty("webdriver.ie.driver", file_chrome.getAbsolutePath()); 30 //WebDriver my_dr = new ChromeDriver();// 打开chrome浏览器 31 32 //-----------------------------打开IE浏览器-------------------------------------------------- 33 File file_ie = new File("C:\\Program Files\\Internet Explorer\\IEDriverServer.exe"); 34 System.setProperty("webdriver.ie.driver", file_ie.getAbsolutePath()); 35 36 //为 Internet Explorer 设置安全性功能,否则会遇到一个安全问题提示:"Protected Mode must be set to the same value (enabled or disabled) for all zones" 37 //DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); 38 //caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 39 //caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); 40 //WebDriver my_dr = new InternetExplorerDriver(caps);// 打开ie浏览器 41 42 WebDriver my_dr = new InternetExplorerDriver();// 打开ie浏览器 43 44 //--------------------------------------------------------------------------------------- 45 //打开百度 46 my_dr.get("www.baidu.com"); 47 48 Thread.sleep(1000); 49 //定位到百度的输入框 50 my_dr.findElement(By.id("kw")).sendKeys("G7物流地图"); 51 52 Thread.sleep(1000); 53 //点击搜索 54 my_dr.findElement(By.id("su")).click(); 55 56 Thread.sleep(1000); 57 //打印页面标题 58 System.out.println(my_dr.getTitle()); 59 //验证页面标题是否符合预期 60 Assert.assertEquals(my_dr.getTitle(), "G7物流地图_百度搜索"); 61 62 Thread.sleep(1000); 63 // 关闭所有webdriver进程,退出 64 my_dr.quit(); 65 } 66 }
5.用selenium1.0写代码如下:
1 package Selenium_Java; 2 3 import com.thoughtworks.selenium.DefaultSelenium; 4 5 /** 6 * @author : zmh 7 * @version :1.0 8 * @date :2016年3月6日 下午12:28:31 9 */ 10 public class runasjavaapplication_selenium1 { 11 public static void main(String[] args) { 12 //创建一个selenium对象,调用DefaultSelenium的构造器,传入参数,参数分别是:host:机器的ip地址、port:端口号、浏览器类型,url:要测试网站的链接 13 DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, 14 "*iexplore C:\\Program Files\\Internet Explorer\\iexplore.exe", 15 "http://www.baidu.com/"); 16 17 selenium.start(); 18 selenium.open("http://www.baidu.com"); 19 selenium.type("id=kw1", "G7物流地图"); 20 selenium.click("id=su1"); 21 System.out.println("Page title is: " + selenium.getTitle()); 22 selenium.stop(); 23 } 24 }
上面提到的需要打开selenium rc还记得吗?打开之后就可以正常运行了。
第八步 TestNG执行Selenium的Java实例
1.新建testng类:在工程上右键,new->other->TestNG(名称为:runastestng.java)
创建完成后如下:
2.写代码:
1 package Selenium_TestNG; 2 3 import java.io.File; 4 5 import org.openqa.selenium.By; 6 import org.openqa.selenium.WebDriver; 7 import org.openqa.selenium.firefox.FirefoxDriver; 8 import org.openqa.selenium.ie.InternetExplorerDriver; 9 import org.openqa.selenium.remote.CapabilityType; 10 import org.openqa.selenium.remote.DesiredCapabilities; 11 import org.testng.Assert; 12 import org.testng.annotations.Test; 13 import org.testng.annotations.BeforeMethod; 14 import org.testng.annotations.AfterMethod; 15 import org.testng.annotations.BeforeClass; 16 import org.testng.annotations.AfterClass; 17 18 /** 19 * @author : zmh 20 * @version :1.0 21 * @date :2016年3月6日 下午12:28:31 22 */ 23 24 public class runastestng { 25 26 WebDriver mydr;// 申明全局变量。。。。。 27 28 @Test 29 public void testng001() throws InterruptedException { 30 //-----------------------------打开IE浏览器-------------------------------------------------- 31 File file_ie = new File("C:\\Program Files\\Internet Explorer\\IEDriverServer.exe"); 32 System.setProperty("webdriver.ie.driver", file_ie.getAbsolutePath()); 33 34 //为 Internet Explorer 设置安全性功能,否则会遇到一个安全问题提示:"Protected Mode must be set to the same value (enabled or disabled) for all zones" 35 DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); 36 caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 37 caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); 38 WebDriver my_dr = new InternetExplorerDriver(caps);// 打开ie浏览器 39 //打开百度 40 my_dr.get("www.baidu.com"); 41 42 Thread.sleep(1000); 43 //定位到百度的输入框 44 my_dr.findElement(By.id("kw")).sendKeys("G7物流地图"); 45 Thread.sleep(1000); 46 //点击搜索 47 my_dr.findElement(By.id("su")).click(); 48 49 Thread.sleep(1000); 50 //打印页面标题 51 System.out.println(my_dr.getTitle()); 52 //验证页面标题是否符合预期 53 Assert.assertEquals(my_dr.getTitle(), "G7物流地图_百度搜索"); 54 Thread.sleep(5000); 55 56 } 57 @BeforeMethod 58 public void beforeMethod() { 59 //switchTo相关可以写在这里 60 } 61 62 @AfterMethod 63 public void afterMethod() { 64 // 切换到主窗口、模擬刷新頁面 65 } 66 67 @BeforeClass 68 public void beforeClass() { 69 //登陆相关可以写在这里 70 } 71 72 @AfterClass 73 public void afterClass() { 74 //浏览器关闭可以写在这里 75 } 76 77 }
运行如下:
3.查看运行报告:
当然,我们也可以继承IReporter类,使用监听器,达到美化报告的目的,这个以后再另外的笔记中补充。
注:搭建环境涉及到的安装包可以在这里下载,此链接永久有效(缺少包或者分享链接失效的可以私信我去添加和修改):
链接: https://pan.baidu.com/s/1kCvVq-KpCY-c9aOYoukjSQ 密码: hwui
原文地址https://www.cnblogs.com/zmhsoup/p/5249663.html