欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WebDriver PageObject学习

程序员文章站 2022-05-02 19:09:51
...
之前写自动化测试框架的时候,觉得管理页面的WebElement元素有点乱,都是写在一个 xml配置文件中,但是具体的是使用id,name,xpath,css 还是别的方式去定位就比较乱,最近学习了PageObject,觉得相当好用,写出来分享一下。WebDriver为了支持PageObject模式,支持库包含一个叫PageFactory的工厂类。
简单来说:PageObject类主要用于分离页面元素和模拟用户浏览器操作代码,下面直接上代码:
模拟在百度上面搜索“webdriver”
WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
 
WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
 可以从上面图片中看出,可以明确指定到底是id, name , xml 还是其他方式方式来findElement,这样方便以后的管理,提高了代码的复用性和可读性,万一以后页面定位元素方式有变化,可以很方便,很直观的修改
WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
 
 PageFactory.initElements(driver, this); 就是用于页面元素的初始化,这样简化了页面元素获取的代码,之前都是通过下面形式来进行页面元素的初始化:
WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
当然,  PageObject 除了使用@FindBy意外,还有一些别的注解,比如:@FindBys @FindAll
@FindBys
WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
@FindBys 相当于是取交集,是先根据第一个注解获取到对应元素,然后根据第二个注解再筛选出对应的页面元素,。如先找到符合classname=A的元素,再在这些元素集中找到classname=B的所有元素
就像如下操作:
driver.findElement(<By_FindByA>).findElement(<By_FindByB>)
@ FindAll 
WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
 @FindAll相当于是取并集,如找到id=A和id=B的所有元素

 今天先到这里,以后如果有新的内容再分享。

 
  • WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
  • 大小: 28.5 KB
  • WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
  • 大小: 90.6 KB
  • WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
  • 大小: 16.4 KB
  • WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
  • 大小: 7.4 KB
  • WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
  • 大小: 14.2 KB
  • WebDriver PageObject学习
            
    
    博客分类: WebDriver WebDriverPageObject
  • 大小: 13.9 KB