如何使用@FindBy for driver.findElements(By.xpath())。size> 0

时间:2017-04-20 06:45:11

标签: selenium-webdriver

目前我正在使用@FindBy注释元素,如下所示

@FindBy(xpath = "//a[@class='fNiv' and contains(text(), 'Home')]")
public static WebElement Tab_Home;

但是当我尝试使用布尔时,我收到错误"更改为getSize()"我的布尔语法是

//AllGeneralTabs is the class name where I have stored my elements
Boolean home=AllGeneralTabs.Tab_Home.size()>0;

当我将Element定义为

时,我希望以某种方式工作
public static final By Tab_Home=By.xpath("//a[@class='fNiv' and contains(text(), 'Home')]");

然后布尔值将完全适用于以下语法

Boolean home=driver.findElements(AllGeneralTabs.Tab_Home).size()>0;

它返回true / False并按预期工作,但@FindBy注释不会发生这种情况。由于我现在使用@FindBy定义了所有元素,我无法返回并将其更改为最终语句,我没有时间。

2 个答案:

答案 0 :(得分:1)

尝试以下解决方案。

@FindAll(@FindBy(how = How.XPATH, using = "//a[@class='fNiv' and contains(text(), 'Home')]"))
List<WebElement> allElements;

OR

@FindBys(@FindBy(xpath="//a[@class='fNiv' and contains(text(), 'Home')]")))
List<WebElement> allElements;

让我知道它是否适合你。

答案 1 :(得分:0)

您正在WebElement size女巫归来DimensionList size之间混合归来int。你没有说出你想要做什么,但似乎你在寻找

@FindBy(xpath = "//a[@class='fNiv' and contains(text(), 'Home')]")
public static List<WebElement> Tab_Home;