簡體   English   中英

Selenium WebDriver無法通過@FindBy注釋查找元素

[英]Selenium WebDriver can't find element by @FindBy annotation

我想找到這個元素

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

有沒有辦法使用@FindBy注釋?

這個有可能。 Selenium支持@FindBys@FindAll ,這為頁面對象增加了更好的調整。

對於鏈式元素查找(這是您正在做的,是在查找中進行的查找),您需要使用@FindBys

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

進一步閱讀FindBysFindAll

由於您要在具有“ 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("...."))進行過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM