Java @FindBy与By.CssSelector的等价物是什么?

Java @FindBy与By.CssSelector的等价物是什么?,java,selenium,Java,Selenium,使用Firefox上的Inspect元素和复制CSS选择器,我得到以下结果: div.GBNJJH1BCUB:nth-child(3) > input:nth-child(1) 我已在我的page类中声明: private static final String logoutButtonCss="div.GBNJJH1BBUB:nth-child(3) > input:nth-child(1)"; 这是找到该元素的正确方法吗 @FindBy(css=logoutButtonCss

使用Firefox上的Inspect元素和复制CSS选择器,我得到以下结果:

div.GBNJJH1BCUB:nth-child(3) > input:nth-child(1)
我已在我的page类中声明:

private static final String logoutButtonCss="div.GBNJJH1BBUB:nth-child(3) > input:nth-child(1)";
这是找到该元素的正确方法吗

@FindBy(css=logoutButtonCss) private WebElement logoutButton;
byExpression允许我使用Css选择器:

By byExpression = By.cssSelector(logoutButtonCss);
我在这里使用后者:

public static boolean isWebElementPresent(By byExpression, WebDriver driver) {

    WebDriverWait wait = new WebDriverWait(driver, Constant.timeOut);
    try { 
        wait.until(ExpectedConditions.presenceOfElementLocated(byExpression));
        return true;
    } catch (TimeoutException e) {
        LOGGER = Logger.getLogger(Common.class.getName());
        LOGGER.setLevel(Level.INFO);
        LOGGER.warning("Timeout searching for " + byExpression);
        return false;
    }
}

@FindBy注释需要文本,而不是变量:

@FindBy(css="div.GBNJJH1BBUB:nth-child(3) > input:nth-child(1)") 
private WebElement logoutButton;

你能考虑至少读一次文档吗?@如果答案在文件里,我就不会问这个问题了。试试看。。。它起作用了吗?有什么问题吗?比尔·希勒曼——那句话根本不是真的。FindBy可以很好地处理变量,只要它们被定义为静态final。那么您遇到的问题到底是什么?我读了又读了你的帖子,看到的都是“这是对的吗?”这行得通吗?如果是,那么它是正确的。我错误地认为它没有,并提出了一个建议。您可能没有用pagefactory初始化POM吗?Bill Hileman-我的问题如标题所述:FindBy与By.CssSelector的等价物是什么?我正在寻找正确的语法,因为我在文档中找不到它。所有我的页面对象都是使用PageFactory.initElements(驱动程序,this)初始化的;