繁体   English   中英

使用@FindBy查找元素。 重构和最佳实践

[英]Using @FindBy to find an element. Refactoring and best practices

我目前在我的selenium框架中有这个方法。

public void selectAddProductButton() {
    driver.findElement(By.id("Content")).findElement(By.className("Title")).findElement(By.tagName("a")).click();
}

但是,我喜欢它,我不喜欢它。 我觉得这是一种接近这个的肮脏方式。 我认为使用@FindBy会更好,但我不知道怎么做。 我在线阅读我可以通过使用带有xpath的@FindBy来实现这一点。 但是,我也读到使用xpath这种方式是一种不好的做法。 有没有更好的方法可以做到这一点? 我通常使用@FindBy来做更简单的事情。 一个例子是

@FindBy(id = "firstname")
private WebElement firstName;

除非我使用xpath,否则我认为没有办法找到使用@FindBy嵌套在其他元素中的元素

当然。 实际上你有多个其他选项和xpath 在这种情况下,您需要使用另一个参数。 how = How.ID

FindBy(how = How.ID, using = "foobar") WebElement foobar;

在这里找到Java文档

Enum How为您提供以下所有选项:

•css

• ID

•linkText

• 名称

•partialLinkText

• 标签名称

•使用

•xpath

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM