1

我想找到这个元素

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

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

4

3 回答 3

4

这个有可能。Selenium 支持这两者@FindBys,并@FindAll为页面对象添加了更精细的调整。

对于链式元素查找(这就是您正在做的,查找中的查找),您需要@FindBys.

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

进一步阅读FindBysFindAll

于 2015-07-19T09:06:35.147 回答
2

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

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

或者

@FindBy(css = ".name > a")
private WebElement nameLink;
于 2015-07-20T01:36:56.393 回答
0

FindBys在 selenium 中测试了几个注释,但有时在使用时 TageNameName不能正常工作!!。

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

于 2015-11-30T11:40:27.550 回答