lab 2: Selenium上机实验
本次实验要求如下:
1、安装SeleniumIDE插件
2、学会使用SeleniumIDE录制脚本和导出脚本
3、访问目标网址使用学号登录系统,进入系统后可以看到该同学的git地址。
4、编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。
所以操作如下:
1.安装SeleniumIDE插件
打开火狐浏览器,单击菜单,选择附加组件。
在获取附加组件中搜索SeleniumIDE,
在众多搜索结果当中选择Selenium IDE:
然后重启浏览器,在工具里面可以找到安装完的插件,现在就可以打开了。
2、学会使用SeleniumIDE录制脚本和导出脚本,并且访问目标网址使用学号登录系统
首先登陆目标网站,然后输入账号和密码,发现已经录制下来了。
点击绿色的按钮就可以导出了。
3、编写Selenium Java WebDriver程序,测试inputgit.csv表格中的学号和git地址的对应关系是否正确。
这里需要做一些准备。我先是用的51版本的火狐浏览器,发现与jar包不兼容,运行总是出错。 问了一些同学,按照他们的方法,下载了43.0.1版本的火狐浏览器,又去下载了2.53.0版本的selenium-java压缩包。
解压完成后,新建一个空白项目。导入解压出来的jar文件。
这里说一下,这个javacsv.jar是为了方便读取.csv格式的文件中的数据而另外下载的jar包。
导入完这些jar包,还要添加build path。右键点击项目,选择build path,选最后一个,然后添加所有刚才解压的jar包,如下:
然后就可以写代码了。
代码如下:
package test2_3; import java.io.IOException; import java.nio.charset.Charset; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.*; import com.csvreader.CsvReader; public class Test2 { public static void main(String[] args) throws IOException { CsvReader r = new CsvReader("D:/学习库/大学课程/大三下学期/软件项目测试//inputgit.csv", ',',Charset.forName("GBK")); r.readHeaders(); //循环读取数据 while (r.readRecord()) { String number_csv = r.get("学号"); String name_csv = r.get("姓名"); String address_csv = r.get("github地址"); String pwd_csv = number_csv.substring(number_csv.length()-6,number_csv.length()); System.setProperty("webdriver.firefox.bin", "D:/学习库/大学课程/大三下学期/软件项目测试/浏览器43.0.1/firefox.exe"); WebDriver driver = new FirefoxDriver(); //输入网址 driver.get("http://121.193.130.195:8080/"); driver.manage().window().maximize(); //输入信息 WebElement input_name = driver.findElement(By.id("name")); input_name.clear(); input_name.sendKeys(number_csv); WebElement input_pwd = driver.findElement(By.id("pwd")); input_pwd.clear(); input_pwd.sendKeys(pwd_csv); WebElement btn = driver.findElement(By.id("submit")); btn.click(); //获取当前页面信息 String info_web = driver.findElement(By.xpath("//tbody[@id='table-main']")).getText(); String name_web = info_web.substring(info_web.indexOf("名") + 2, info_web.indexOf("学") - 1); String number_web = info_web.substring(info_web.indexOf("号") + 2, info_web.indexOf("G") - 1); String address_web = info_web.substring(info_web.indexOf("址") + 2); if(name_csv.equals(name_web)&&number_csv.equals(number_web)&&address_csv.equals(address_web)) { System.out.println(number_web+"用户信息一致."); } else { System.out.println(name_web+"的信息不一致."); } driver.close(); } r.close(); } }
因为我调试了好多次程序,这是我的第三个版本,所以名字是test2_3。
数据比较多,运行的比较慢,部分运行结果截图如下:
可以看出,绝大部分的数据是一致的。但是也有一些个别的同学,由于名字中有繁体字或者生僻字,识别失败。比如下面的:
以上就是本次实验结果。实验成功。