gpt4 book ai didi

java - 使用 @FindBy 与 WebDriver.findElement 之间的优点和缺点

转载 作者:行者123 更新时间:2023-12-02 02:31:16 28 4
gpt4 key购买 nike

我正在使用 Cucumber 和 Selenium 框架进行 UI 自动化测试,并且想了解使用以下方法捕获 WebElement 之间的区别:

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

对比

WebDriver.findElement(className/xpath)

我的理解(可能有缺陷)是:

@FindBy

优点:存储对元素的引用,因此您只需在类的顶部定义它,而不是在使用它的任何地方(使用 WebDriver.findElement)

缺点:在使用PageFactory.initElements(WebDriver, ClassName.class);引用之前需要“刷新”元素的值。否则该元素可能已过时或来自刷新后的页面的先前值

WebDriver.findElement(className/xpath)

优点:你知道你总是从指定的 className 或 xpath 获取最新和当前的元素

缺点:需要在所有使用的地方定义,当频繁定义相同的 className 或 xpath 时代码会变得困惑

任何有助于澄清此处差异的帮助将不胜感激。

最佳答案

PageFactory 在使用引用之前不需要刷新。这是一个代理。您应该能够通过谷歌搜索并找到一些有关其工作原理细节的引用资料,但 Selenium 贡献者建议不要使用 PageFactory

.findElement() 不需要在所有使用的地方都定义。您可以轻松地在类顶部定义一个 By 定位器,并在整个类中重用该变量。

关于java - 使用 @FindBy 与 WebDriver.findElement 之间的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043537/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com