selenium+java软件测试工程师进阶过程

selenium结合断言的使用

2018-12-04  本文已影响125人  一见你就笑嘻嘻

1)取预期结果;
2)取实际结果;
3)断言:比较1)和2)来判断测试是否通过;

1 package simplewebtest.test;
 2 
 3 import java.util.concurrent.TimeUnit;
 4 
 5 import org.openqa.selenium.By;
 6 import org.openqa.selenium.WebDriver;
 7 import org.openqa.selenium.firefox.FirefoxDriver;
 8 import org.testng.annotations.Test;
 9 
10 public class TestBaiduHome {
11     
12     @Test
13     public void searchSomething(){
14 
15         WebDriver driver=new FirefoxDriver();//打开Firefox; open firefox
16         driver.get("http://www.baidu.com");//打开百度open the url
17         driver.findElement(By.id("kw1")).sendKeys("GitHub");//输入搜索关键字“GitHub";input search keyword
18         driver.findElement(By.id("su1")).click();//点击搜索按钮click the search button
19         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);//等页面加载,10秒内不加载成功即报超时。waiting for 10 seconds                        
20         String aResult=driver.findElement(By.xpath(".//*[@id='4']/h3/a")).getText();//取第四条搜索结果的标题。 get the text of 4th search result
21         assert aResult.contains("GitHub");//做断言 assertion
22         driver.findElement(By.xpath(".//*[@id='4']/h3/a")).click();//打开第四个搜索结果。Open the 4th search result on baidu
23         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);//等页面加载,10秒内不加载成功即报超时。waiting for 10 seconds                        
24         
25         //获取所有窗口的handle,然后逐个切换,直到切换到最新窗口 switch to the new window
26         for(String winHandle : driver.getWindowHandles()){     
27             driver.switchTo().window(winHandle);     
28             }     
29         
30         String aTitle=driver.getTitle();//取新窗口的title
31         System.out.println("current widnow title is:"+aTitle);//打出来看看
32         assert aTitle.contains("GitHub");//断言
33         
34     }
35 }

原文

断言 作用
assertLocation 判断当前是在正确的页面
assertTitle 检查当前页面的title是否正确
assertValue 检查input的值, checkbox或radio,有值为”on”无为”off”
assertSelected 检查select的下拉菜单中选中是否正确
assertSelectedOptions 检查下拉菜单中的选项的是否正确
assertText 检查指定元素的文本
assertTextPresent 检查在当前给用户显示的页面上是否有出现指定的文本
assertTextNotPresent 检查在当前给用户显示的页面上是否没有出现指定的文本
assertAttribute 检查当前指定元素的属性的值
assertTable 检查table里的某个cell中的值
assertEditable 检查指定的input是否可以编辑
assertNotEditable 检查指定的input是否不可以编辑
assertAlert 检查是否有产生带指定message的alert对话框
waitForElementPresent 等待检验某元素的存在。为真时,则执行
  1. 相等断言:assertEqual(self, first, second, msg=None)  常用于title和url的对比来检查是否与预期结果一致;
self.assertEqual(u'用户 - Delicate Cloud Dashboard', driver.title, 'switch to Admin_Identity_User panel fail')
  1. 不等断言:assertNotEqual(self, first, second, msg=None)  与1相反,此断言不常用;

  2. True断言:assertTrue(self, expr, msg=None)     此断言可用于对寻找某元素的表达式进行判断,如返回True则通过,否则Fail;

  3. False断言:assertFalse(self, expr, msg=None)    此断言可用于对寻找某元素的表达式进行判断,如返回False则通过,否则Fail;

3和4可以配合使用selenium IDE所生成的[Python](http://lib.csdn.net/base/python "Python知识库")脚本中is_element_present和is_alert_present来使用;
上一篇下一篇

猜你喜欢

热点阅读