Selenium上机实验
实验要求:
1、安装SeleniumIDE插件
2、学会使用SeleniumIDE录制脚本和导出脚本
3、访问http://121.193.130.195:8080/使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到该同学的git地址。
4、编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。
5、将测试代码提交到github上。
实验步骤:
1、安装SeleniumIDE插件
在火狐浏览器中,打开菜单-附加组件,在获取附加组件中搜索SeleniumIDE,在众多搜索结果当中选择Selenium IDE,图标如图所示:
安装之后,重启火狐浏览器,在工具可以看到SeleniumIDE的按钮,表示安装成功。
2、学会使用SeleniumIDE录制脚本和导出脚本。
点击工具,打击SeleniumIDE按钮,启动SeleniumIDE插件,启动界面如图:
base url:指的是你当前录制时的开始连接地址。
Test case:这里就是你的测试用例。
右侧的中间显示的就是全部命令内容
底部就是在运行过程中会出现的结果,异常等显示。
右上角的红色圆,空心的时候表示的正在录制,实心表示录制结束
3、访问http://121.193.130.195:8080/使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到该同学的git地址。
这里使用SeleniumIDE录制访问过程,访问之前打开SeleniumIDE插件,开始录制。
在浏览器中输入网址访问,输入用户名和密码进行登录,SeleniumIDE记录了这一过程:
点击绿色三角按钮,可以进行回放操作。而且可以导出录制脚本。
4、编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。
准备工作:火狐浏览器版本与Selenium Java版本的兼容问题,是实验成功的关键因素。
这里建议:火狐浏览器版本:43.0.1 Selenium Java版本:2.53.0
(火狐浏览器版本在帮助-关于Firefox中可以查看)
(1)下载Selenium Java 2.53.0版本,并在Eclipse中导入。
下载地址:http://selenium-release.storage.googleapis.com/index.html?path=2.53/。下载之后解压,得到如下目录结构:
然后把上面解压出来的文件拷到新建的project目录下,目录结构如下图:
(2)添加build path,项目目录右键-->Build Path--> config build path-->Java Build Path-->Libraries-->Add JARs。把libs文件夹下的jar包全部添加上,再添加selenium-java-2.53.0.jar和selenium-java-2.53.0-srcs.jar。
添加完之后目录结构如上图,多了引用的库,这里就是上面那一步添加进去的jar包。
(3)明确实验目的,编写代码。
本次实验,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。我们以网站http://121.193.130.195:8080/中的信息为标准,一一检查表格中每个人的信息是否准确。
所以,根据实验目的,可以知道我们的主要工作分为三步:
1、读取inputgit.csv表格中的数据并且存储在变量当中;
(在读写CSV文件是大家可能到会有这样的纠结:到底是用第三方的jar包,还是自己写个类呢?如果用第三方的jar包,网上的资源有的特别大,可能就是个几百K的程序,却要附带一个和自己差不多大的jar包,得不偿失。如果自己写的话,又很难完美的处理各种异常。不过有一个特别好用的第三方jar包,只有14K,完美的解决了这个问题。下载地址:http://sourceforge.net/projects/javacsv/files/。导入方法与之前一致。)
2、使用SeleniumIDE自动登录网站查询,将查询结果保存;
3、比较表格中的数据和网站查询出的数据,检查是否一致。
代码如下:
1 package test; 2 3 import java.io.IOException; 4 import java.nio.charset.Charset; 5 6 import org.openqa.selenium.By; 7 import org.openqa.selenium.WebDriver; 8 import org.openqa.selenium.WebElement; 9 import org.openqa.selenium.firefox.*; 10 import com.csvreader.CsvReader; 11 12 public class Test { 13 14 public static void main(String[] args) throws IOException { 15 16 //生成CsvReader对象,以,为分隔符,GBK编码方式 17 CsvReader r = new CsvReader("E://学习资料//软件测试//上机实验//实验二//inputgit.csv", ',',Charset.forName("GBK")); 18 //读取表头 19 r.readHeaders(); 20 //逐条读取记录,直至读完 21 while (r.readRecord()) { 22 //读取一条记录 23 r.readRecord(); 24 //按列名读取这条记录的值 25 String number_csv = r.get("学号"); 26 String name_csv = r.get("姓名"); 27 String address_csv = r.get("github地址"); 28 String pwd_csv = number_csv.substring(number_csv.length()-6,number_csv.length()); 29 30 //打开火狐浏览器 31 System.setProperty("webdriver.firefox.bin", "D:/火狐浏览器/firefox.exe"); 32 WebDriver driver = new FirefoxDriver(); 33 //访问给定网址 34 driver.get("http://121.193.130.195:8080/"); 35 driver.manage().window().maximize(); 36 //输入用户名 37 WebElement input_name = driver.findElement(By.id("name")); 38 input_name.clear(); 39 input_name.sendKeys(number_csv); 40 //输入密码 41 WebElement input_pwd = driver.findElement(By.id("pwd")); 42 input_pwd.clear(); 43 input_pwd.sendKeys(pwd_csv); 44 //点击登录按钮 45 WebElement btn = driver.findElement(By.id("submit")); 46 btn.click(); 47 //登录成功之后,获得当前页面的用户信息 48 String info_web = driver.findElement(By.xpath("//tbody[@id='table-main']")).getText(); 49 String name_web = info_web.substring(info_web.indexOf("名") + 2, info_web.indexOf("学") - 1); 50 String number_web = info_web.substring(info_web.indexOf("号") + 2, info_web.indexOf("G") - 1); 51 String address_web = info_web.substring(info_web.indexOf("址") + 2); 52 //比较查询信息 53 if(name_csv.equals(name_web)&&number_csv.equals(number_web)&&address_csv.equals(address_web)) 54 { 55 System.out.println("用户信息一致."); 56 } 57 else 58 { 59 System.out.println(name_web+"的信息不一致."); 60 } 61 driver.close(); 62 } 63 r.close(); 64 65 } 66 67 }
表格中的数据较多,我们以10条数据查询为例,运行结果如下: