5.7 WebDriver API实例讲解
本节主要详细描述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(150,150); //声明Dimension对象,两个500表示浏览器窗口的长度和宽度 Dimension dimension=new Dimension(500,500); //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(3); 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(3); dropList.selectByValue("shanzha"); dropList.selectByVisibleText("荔枝"); sleep(3000); dropList.deselectAll(); sleep(3000); dropList.selectByIndex(3); dropList.selectByValue("shanzha"); dropList.selectByVisibleText("荔枝"); sleep(3000); dropList.deselectByIndex(3); sleep(3000); dropList.deselectByValue("shanzha"); sleep(3000); dropList.deselectByVisibleText("荔枝"); }