sha*_*087 3 selenium selenium-webdriver
可有人请解释如何使用ElementLocatorFactory,并FieldDecorator在PageFactory使用Selenium?我无法理解,请求您以外行的方式解释这一点.
当您使用时PageFactory,webelements实例实际上是代理,并且在您调用方法之前必须找到元素.
获取部分封装在ElementLocator每个字段中.在ElementLocatorFactory为每个元件提供这些.这家工厂需要SearchContext提供给工厂的建设者.驱动程序实现SearchContext(方法findelement)甚至是webelement.该By是如何看待他们的一部分,是通过反射检索API的pageobject领域.
将代理分配给字段由处理FieldDecorator,需要ElementLocatorFactory.decorate()为每个webelement字段调用的方法返回为该字段设置的代理.当在webelement上调用方法时,它实际上在代理上被调用.代理拦截此调用以使用该SearchContext.findElement方法查找实际元素,然后调用原始方法.
所以可以创建自定义ElementLocatorFactory并FieldDecorator传递给PageFactory.
有关代码级别的说明 - http://www.alechenninger.com/2014/07/a-case-study-of-javas-dynamic-proxies_14.html.
| 归档时间: |
|
| 查看次数: |
1477 次 |
| 最近记录: |