我使用PageFactory初始化了项目中的所有WebElements。为了记录目的,我正在修剪元素的日志。但是在修剪时我遇到了一些困难。因此,当我尝试打印元素时,我发现大多数时候元素都是以这种方式打印的: [[ChromeDriver:XP上的chrome(d96cf99661f5d938b75f8448dad62d3b)] - > xpath://按钮[@ ng-reflect-label ='添加']]
但在非常小的情况下,它是以这种方式打印的: 代理元素:DefaultElementLocator' By.xpath:// div [contains(@class,' ui-growl-icon-close')]'
我的修剪方法寻找" - >"在元素中所以大部分时间它都有效,但很少在它变为"代理元素时失败..." 事情是,打印时元素没有一致性。元素打印为"代理元素..."将打印为" [[ChromeDriver .."在下一次迭代中
使用的浏览器:chrome(仅限)
答案 0 :(得分:0)
使用PageFactory
初始化webelement
时,会使用Proxy
对象对其进行初始化。只有当您从代码中访问元素(如sendkeys)时,才会完全检索并初始化webelement
。
有关selenium pagefactory初始化的代码级别讨论,请参阅此内容。 http://www.alechenninger.com/2014/07/a-case-study-of-javas-dynamic-proxies_14.html