Java @FindBy与By.CssSelector的等价物是什么?
使用Firefox上的Inspect元素和复制CSS选择器,我得到以下结果: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
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)初始化的;