Automation 哪种方法更快?从页面工厂中的java类或外部文件(JSON)访问定位器

Automation 哪种方法更快?从页面工厂中的java类或外部文件(JSON)访问定位器,automation,Automation,框架成分-Cucumber和Selenium Java、页面对象模型和页面工厂 目前我正在以下面的方式编写定位器- Class->HomePage.java @FindAll({ @FindBy(css = HomePageLocators.factoryBouncePopUp), @FindBy(xpath = HomePageLocators.outletBouncePopUp), }) public List<WebElement>

框架成分-Cucumber和Selenium Java、页面对象模型和页面工厂

目前我正在以下面的方式编写定位器-

Class->HomePage.java

@FindAll({  
        @FindBy(css = HomePageLocators.factoryBouncePopUp),
        @FindBy(xpath = HomePageLocators.outletBouncePopUp),
    }) public List<WebElement> bouncePopUp;
正如我们所知,我们可以在@FindBy注释中将定位器作为常量传递。所以我开始在java类中编写定位器。事情进展顺利

但我一直在考虑在一个外部文件(比如json)中写下定位器,我认为在json中维护定位器会更容易,特别是当定位器数量巨大时(比如600个)。我在下面的链接中找到了如何从PageFactory中的json访问定位器

我想从性能的角度了解社区的意见,哪种方法是可取的。我不会考虑使用页面工厂的json,以防性能成为一个问题

如果Json能够在性能竞赛中获胜,那么除了上面的链接之外,任何人都可以向我推荐在PageFactory中实现Json的任何来源


任何想法都将不胜感激。

如果您想访问定位器值,那么java中的接口是最好的选择。您不需要与任何其他文件类型交互。在接口中,您可以直接获取数据,它也是静态和最终的,您只需将其命名为Interface name.LocatorName。这不会影响你的表现

    public final static String factoryBouncePopUp = "div[id*=bx-creative] > div > a";
    public final static String outletBouncePopUp = "//button[contains(.,'NO THANKS, I PREFER TO PAY FULL PRICE')]";