@FindBy与driver.findElement()之间的区别?

时间:2018-03-15 06:32:05

标签: selenium selenium-webdriver webdriver findby page-factory

我已经使用了它们但不知道我应该在哪里使用@findBy以及我在哪里使用driver.findElement()

我听说@FindBy表现动态,而driver.findElement()表现为静态。这是什么意思?

1 个答案:

答案 0 :(得分:0)

@FindBydriver.findElement()都是实现同一目标的不同方法,即通过不同的Locator Strategies来定位元素。

使用 PageFactory 时,我们可以使用Annotation Type FindBy FindBy 注释可帮助我们删除在查找元素时通常以findElement()findElements()形式使用的样板代码。

例如:

WebElement element = driver.findElement(By.name("q"));
element.click();

成为:

element.click();

您可以在讨论How to use explicit waits with PageFactory fields and the PageObject pattern

中找到@Simon Stewart对同一主题的评论