java selenium自动化测试工具包介绍

java selenium自动化测试工具包介绍


    最开始做自动化的时候自己封装了一些工具类,把一些元素、driver的操作做了封装,所以就把这个项目叫做testUtils(测试工具)

    但最近看到一篇虫师的文章,他实现了一个python的poium测试库,核心是基于Page Objects实现元素定位的封装。看完之后,发现用这个测试库的话定位元素,元素操作都变得非常简洁,并且清晰明了。
    由于我一直用的是java做自动化开发,并早就烦恼于java各种类库的引用与代码的繁琐,所以我就想java能不能也封装出相似的测试库呢。几经思索,终于想通了一些细节,并着手实现了框架。


实现此框架的原则:

  1. 使用此框架之后代码必须简洁
  2. 必须与IDE有较高的契合度,各项操作能自动补全代码
  3. 对同一个对象的多次操作最好能一句代码实现。

基于以上原则,封装了Element Assertion PageTemp类,其中

  • Element 是对WebElement的封装,使用它对元素的操作及定位都会简单一些。
  • PageTemp 是Page Objects模式的页面元素集合。
  • Assertion 是一些断言方法的封装,暂时实现了一部分,后续应该会实现Selenium IDE的所有断言。并且此处断言可以链式调用。

实现的特性

  1. 相对于selenium的8种定位方式,增加了“文本”定位 和“包含文本”定位。如:
    new Element().text("文本内容")
    new Element().containText("包含的文本")
  2. 针对iframe内的元素做特殊处理,只要给元素设置iframe属性后,之后对此元素的操作可以直接调用。如:
    Element iframe = new Element().name("iframe");
    Element element = new Element().iframe(iframe).text("example");
    元素操作:
    element.click();
    省去了繁琐的driver与frame上下文切换操作
  3. 未元素增加了一个父元素属性(pElement),设置pElement之后,查找元素会从pElement内查找。如:
    Element pEle = new Element().name("pElement");
    Element cEle = new Element().pElement(pEle).name("cElement");
  4. 对多选元素封装了多个方法,可直接调用,免除了新建Select类的操作。
  5. 对Element简单实现了几个断言方法,可直接使用。如:
    ele.assert_equalsText("expectText");
    不过还是建议建议使用Assertion进行断言。
  6. 封装了一个断言类(Assertion),同一用例中可连续调用,即使断言失败也会继续执行后面的代码,只有在调用Assertion.end()才会判断用例是否成功。如:
//dosomething
 Assertion.start().assertTitle(driver,"expectTitle")
//dosomething
 Assertion.assertLocation(driver,"expectUrl").end();//最后一次断言

框架使用示例

page类
import com.jaque.Element;
import com.jaque.factory.PageTemp;
import org.openqa.selenium.WebDriver;

public class PageTempTest extends PageTemp {
   

    public PageTempTest
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值