本节主要详细描述WebDriver的常用API使用方法。
1.访问某网页地址
被测试网页的网址:http://www.sogou.com。
Java语言版本的API实例代码:
方法1:
public static void visitURL(){
String baseUrl="http://www.sogou.com";
driver.get(baseUrl);
}
方法2:
public static void visitURL(){
String baseUrl="http://www.sogou.com";
driver.navigate().to(baseUrl); //访问sogou首页
}
2.返回上一个访问的网页(模拟单击浏览器的后退功能)
被测试网页的网址:http://www.sogou.com, http://www.baidu.com
Java语言版本的API实例代码:
public static void visitRecentURL(){
String url1="http://www.sogou.com";
String url2="http://www.baidu.com";
driver.navigate().to(url1); //先访问sogou首页
driver.navigate().to(url2); //再跳转访问Baidu首页
driver.navigate().back(); //返回到上一次访问的sogou首页页面
3.从上次访问网页前进到下一个网页(模拟单击浏览器的前进功能)
被测试网页的网址:http://www.sogou.com, http://www.baidu.com
Java语言版本的API实例代码:
public static void visitNextURL(){
String url1="http://www.sogou.com";
String url2="http://www.baidu.com";
driver.navigate().to(url1); //先访问sogou首页
driver.navigate().to(url2); //再跳转访问Baidu首页
driver.navigate().back(); //返回到上一次访问的sogou首页页面
driver.navigate().forward(); //从sogou首页页面跳转到Baidu首页
}
4.刷新当前网页
被测试网页的网址:http://www.sogou.com, http://www.baidu.com
Java语言版本的API实例代码:
public static void freshCurrentPage(){
String url="http://www.sogou.com";
driver.navigate().to(url); //访问sogou首页
driver.navigate().refresh(); //刷新当前页面
}
5.操作浏览器窗口
被测试网页的网址:http://www.sogou.com。
Java语言版本的API实例代码:
public static void operateBrowser(){
//声明一个Point对象,两个150表示浏览器的位置相对于屏幕左上角(0,0)的横坐标举例和纵坐标举例
Point point=new Point(,);
//声明Dimension对象,两个500表示浏览器窗口的长度和宽度
Dimension dimension=new Dimension(,);
//setPosition方法表示设定浏览器在屏幕上的位置为point对象的坐标(150,150),在某些版本浏览器下次方法失效
driver.manage().window().setPosition(point);
//setSize方法表示设定浏览器窗口的大小为长为500个单位和宽为500个单位
driver.manage().window().setSize(dimension);
//getPosition方法表示获取浏览器在屏幕的位置,在某些浏览器版本下次方法失效
System.out.println(driver.manage().window().getSize());
//maximize方法表示将浏览器窗口最大化
driver.manage().window().maximize();
driver.get("http://www.sogou.com");
}
6.获取页面的Title属性
被测试网页的网址:http://www.sogou.com。
Java语言版本的API实例代码:
public static void getTitle(){
driver.get("http://www.sogou.com");
//调用driver的getTitle方法获取页面的Title属性
String title=driver.getTitle();
//打印从当前页面获取的Title内容
System.out.println(title);
}
7.获取页面的源代码
public static void getPageSource(){
driver.get("http://www.sogou.com");
String pageSource=driver.getPageSource();
System.out.println(pageSource);
}
8.获取当前页面的URL地址
public static void getCurrentPageUrl(){
driver.get("http://www.sogou.com/");
String CurrentPageUrl=driver.getCurrentUrl();
System.out.println(CurrentPageUrl);
}
9.在输入框中清除原有的文字内容
public static void clearInputBoxText(){
WebElement input=driver.findElement(By.id("text"));
input.clear();
}
10.在输入框中输入指定内容
public static void clearInputBoxText(){
String inputString="测试工程师指定的输入内容";
WebElement input=driver.findElement(By.id("text"));
input.clear(); //首先清除文本框中的原有内容,防止原有内容影响测试结果,建议都清除掉
input.sendKeys(inputString);
}
11.单击按钮
public static void clickButton(){
WebElement button=driver.findElement(By.id("button"));
button.click();
}
12.双击某个元素
public static void doubleClick(){
WebElement inputBox=driver.findElement(By.id("inputBox"));
Actions builder=new Actions(driver);
builder.doubleClick(inputBox).build().perform();
}
13.操作单选下拉列表
被测试的网页Demo1下载
public static void operateDropList(){
driver.get("file:///D:/%E6%95%99%E5%AD%A6/2015-2016-2/%E8%AF%BE%E4%BB%B6/w9/SeleniumDemo/files/Demo1/demo.html");
Select dropList=new Select(driver.findElement(By.name("select")));
System.out.println("此下拉列表是否允许多选:"+dropList.isMultiple()); System.out.println("当前选中的选项文本是:"+dropList.getFirstSelectedOption().getText()); dropList.selectByIndex();
System.out.println("下拉列表第3项是:"+dropList.getFirstSelectedOption().getText()); dropList.selectByValue("saab");
System.out.println("希望选中值为saab,当前选中的选项文本是:"+dropList.getFirstSelectedOption().getText()); dropList.selectByVisibleText("奥迪");
System.out.println("希望选中文字为奥迪,当前选中的选项文本是:"+dropList.getFirstSelectedOption().getText());
}
14.检查单选列表的选项文字是否符合期望
public static void checkSelectText(){
driver.get("file:///D:/%E6%95%99%E5%AD%A6/2015-2016-2/%E8%AF%BE%E4%BB%B6/w9/SeleniumDemo/files/Demo1/demo.html");
Select dropList=new Select(driver.findElement(By.name("select")));
List<String> expect_options=Arrays.asList((new String[]{"沃尔沃","萨博","欧宝","奥迪"}));
List<String> actual_option=new ArrayList<String>();
for(WebElement option:dropList.getOptions())
{
actual_option.add(option.getText());
}
if(expect_options.equals(actual_option))
System.out.println("一致");
else
System.out.println("不一致");
}
15.操作多选的选择列表
public static void operateMultipleOptionDropList(){
driver.get("file:///D:/%E6%95%99%E5%AD%A6/2015-2016-2/%E8%AF%BE%E4%BB%B6/w9/SeleniumDemo/files/Demo1/demo.html");
Select dropList=new Select(driver.findElement(By.name("fruit")));
System.out.println("此下拉列表是否允许多选:"+dropList.isMultiple()); dropList.selectByIndex();
dropList.selectByValue("shanzha");
dropList.selectByVisibleText("荔枝");
sleep();
dropList.deselectAll();
sleep(); dropList.selectByIndex();
dropList.selectByValue("shanzha");
dropList.selectByVisibleText("荔枝");
sleep();
dropList.deselectByIndex();
sleep();
dropList.deselectByValue("shanzha");
sleep();
dropList.deselectByVisibleText("荔枝");
}