本次实验要求如下:
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。
数据比较多,运行的比较慢,部分运行结果截图如下:
可以看出,绝大部分的数据是一致的。但是也有一些个别的同学,由于名字中有繁体字或者生僻字,识别失败。比如下面的:
以上就是本次实验结果。实验成功。