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