gpt4 book ai didi

java - 如何在 PageFactory @FindBy 注释中使用属性文件值?

转载 作者:行者123 更新时间:2023-12-05 00:47:50 24 4
gpt4 key购买 nike

我最近开始使用 Selenium2 和页面对象模式
与 Page Factory 结合使用。我有声明的 WebElements
@FindBy 由 PageFactory 初始化的注解,当
类被初始化。但是我想使用@FindBy
带有 locators.properties 文件的注释。可惜我好像没有
能够做到这一点,因为注释仅限于允许
常量表达式。这似乎是Java中的一个限制
一般的注释,但我只是想知道是否有人找到了
解决方法。我宁愿从
外部来源,但我会失去使用的好处
页面工厂。

公共(public)类登录页面 {

    protected WebDriver driver; 

@FindBy(id = "username")
private WebElement usernameField;

@FindBy(id = "password")
private WebElement passwordField;

@FindBy(id = "button_login")
private WebElement loginButton;

public LoginPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}

}

我想实现类似的东西,但我不能
因为注释不允许这样做:

公共(public)类登录页面 {
    protected WebDriver driver; 

Properties locators = new Properties();

@FindBy(id = locators.getProperty("login.usernameField"))
private WebElement usernameField;

@FindBy(id = locators.getProperty("login.passwordField"))
private WebElement passwordField;

@FindBy(id = locators.getProperty("login.loginButton"))
private WebElement loginButton;

public LoginPage(WebDriver driver) {
this.driver = driver;
// Load the locators.properties File here
PageFactory.initElements(driver, this);
}

}

最佳答案

你暂时不能。

您总是可以编写一种方法来实现它,并将其作为可以应用回 Selenium 代码库的补丁提供:)

关于java - 如何在 PageFactory @FindBy 注释中使用属性文件值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135495/

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