使用@FindBy Annotation在元素中查找元素.

ram*_*ram 6 selenium-webdriver

例如,

WebElement parentEle = driver.findElement(By.id("xyz"));
WebElement childEle = parentEle.findElement(By.id("abc"));
childEle.click();
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们在parentEle中找到了childEle.我们如何使用@FindBy注释(与PageFactory结合)实现此目的

Sai*_*fur 2

首先,如果孩子有唯一的 id,为什么需要从父母那里找到孩子?id 的主要目的是提供使用唯一选择器查找元素的灵活性。

如果子元素确实嵌套到其他元素,请使用 xpath 查找。我经常用那个。

@FindBy(how = How.XPATH, using = "//something/something")
private WebElement TestElement;
Run Code Online (Sandbox Code Playgroud)

或凭身份证

@FindBy(how = How.ID, using = "abc")
private WebElement TestElement;
Run Code Online (Sandbox Code Playgroud)

  • 感谢赛弗尔的回复。我明白。当我们通过id查找时,我们可以直接找到它。但我只是引用它作为例子。让我解释一下我的情况。我有多个具有相同类名但不同值的 li 标签。各黎各有子女。所以我需要获取父标签(此处为 li)并处理其子元素。我可以通过正常的 findElement 方式实现这一点,但我想知道我们如何通过使用 @FIndBy 注释来做到这一点。请回复。 (3认同)