当前位置: 代码迷 >> java >> Selenium WebDriver无法通过@FindBy注释查找元素
  详细解决方案

Selenium WebDriver无法通过@FindBy注释查找元素

热度:26   发布时间:2023-07-31 12:01:47.0

我想找到这个元素

driver.findElement(By.className("name")).findElement(By.tagName("a"));

有没有办法使用@FindBy注释?

这个有可能。 Selenium支持@FindBys@FindAll ,这为页面对象增加了更好的调整。

对于链式元素查找(这是您正在做的,是在查找中进行的查找),您需要使用@FindBys

@FindBys({@FindBy(className = "name"), @FindBy(tagName= "a")})
private WebElement element;    

进一步阅读和 。

由于您要在具有“ name”类的元素内寻找“ a”标签,因此请尝试通过XPath或CSS选择器将它们组合:

@FindBy(xpath = "//*[@class = 'name']/a")
private WebElement nameLink;

要么

@FindBy(css = ".name > a")
private WebElement nameLink;

我在硒中测试了多个FindBys批注,但有时使用TageNameName不能正常工作!

经常查找List<WebElement>使用driver.findElement(By.name("...."))进行过滤。

  相关解决方案