java—使用@findby与webdriver.findelement的优缺点

wvmv3b1j  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(391)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

三年前关门了。
改进这个问题
我正在使用cucumber和selenium框架进行ui自动化测试,希望了解使用以下方法捕获WebElement之间的区别:

@FindBy (org.openqa.selenium.support.FindBy)

WebDriver.findElement(className/xpath)

我的理解(可能有缺陷)是:
@被发现者
pro:存储对元素的引用,因此您只需要在类的顶部定义它,而不需要在使用它的任何地方(使用webdriver.findelement)
con:在使用引用之前,需要“刷新”元素的值 PageFactory.initElements(WebDriver, ClassName.class); 否则,该元素可能是过时的,或者是自刷新后的页面中的上一个值
webdriver.findelement(类名/xpath)
pro:您知道您总是从指定的类名或xpath中获取最新和最新的元素
缺点:在任何地方都需要定义,当经常定义相同的类名或xpath时,代码会变得混乱
如能帮助澄清这些分歧,我们将不胜感激。

jbose2ul

jbose2ul1#

PageFactory 在使用引用之前不需要刷新。它是一个代理。你应该可以在google上找到一些关于它工作原理的详细资料,但是selenium贡献者建议不要使用 PageFactory . .findElement() 不需要在任何地方定义。你可以很容易地定义一个 By 将定位器放在类的顶部,并在整个类中重用该变量。

相关问题