我已经使用 PageFactory 初始化了项目中的所有 WebElements。出于日志记录目的,我正在修剪元素的日志。但我在修剪时遇到了一些困难。因此,当我尝试打印元素时,我发现大多数时候元素都是以这种方式打印的:[[ChromeDriver: chrome on XP (d96cf99661f5d938b75f8448dad62d3b(] -> xpath://button[@ng-reflect-label='Add']]
但在极少数情况下,它是这样打印的:Proxy element for : DefaultElementLocator 'By.xpath://div[contains(@class,'ui-growl-icon-close'(]'
我的修剪方法在元素中查找"->",因此大多数时候它都可以工作,但是当它更改为"代理元素..."时很少失败问题是打印时元素没有一致性。元素被打印为"代理元素..."将在下一次迭代中打印为"[[ChromeDriver..."(
使用的浏览器:铬(仅限(
PageFactory
初始化webelement
时,它会使用 Proxy
对象对其进行初始化。仅当您从代码(如发送密钥(访问元素时,才会检索并完全初始化实际webelement
。
有关 Selenium pagefactory 如何初始化的代码级讨论,请参阅此内容。 http://www.alechenninger.com/2014/07/a-case-study-of-javas-dynamic-proxies_14.html