我正在尝试做的是:

我目前正在将我的Selenium(Java)框架从标准的Page对象模型+黄瓜设置迁移到PageFactory +黄瓜设置。

到目前为止,我已经尝试过使其工作:


我启动了PageFactory。
我导入了所有必需的软件包和依赖项。
我检查了多个在线教程,以确保我有正确的选择
句法。


我遇到的问题:

我的IDEA(IntelliJ)一直在给我@FindBy批注错误,并因此而无法编译。

当我将鼠标悬停在我的@FindBy批注上时,它会告诉我“ @FindBy不适用于方法”

当我尝试运行测试时,每次出现@FindBy批注都会给我以下错误。
“注释类型不适用于这种声明”

我的问题的代码是关于:

    package pageObjects;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class AssociatedAlerts {


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

    @FindBy(css = "#Rabo_SelectedBatchSLTransactionrow0 > * > [type = 'checkbox']")
    public WebElement firstAlertCheckboxSelected();
}


我一定错过了一些简单的东西,但我似乎无法发现它。
任何帮助将非常感激。

提前致谢。

最佳答案

您的语法有误:

    @FindBy(css = "#Rabo_SelectedBatchSLTransactionrow0 > * > [type = 'checkbox']")
    public WebElement firstAlertCheckboxSelected();


firstAlerchCheckboxSelected不是方法。这是一个变量。

更改为:

    @FindBy(css = "#Rabo_SelectedBatchSLTransactionrow0 > * > [type = 'checkbox']")
    public WebElement firstAlertCheckboxSelected;

09-27 07:03