FindBy:如何+使用与位置策略的名称

时间:2015-07-23 08:09:53

标签: selenium selenium-webdriver annotations webdriver findby

使用Selenium WebDriver,

使用@FindBy为您的定位器添加注释时,您可以选择如何+使用的组合:

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

或者您可以直接使用位置策略:

@FindBy(id = "foobar") WebElement foobar;

我总是使用更短的第二版。

我想不出为什么我应该使用更长的How + using版本。

所以我的问题是:

您是否需要使用[如何+使用]?

如果没有,为什么这个更长的版本甚至存在?

2 个答案:

答案 0 :(得分:0)

我搜索了可用的文档,但是当我们可以直接使用位置策略的名称时,找不到如何使用@FindBy注释方式的原因。

如果您查看文档在评论here中的编写方式:

  

您可以通过指定“how”和“using”来使用此注释,也可以通过指定一个具有适当值的位置策略(例如:“id”)来使用此注释。这两个选项都将委托给By class中匹配的By方法。

似乎毫无疑问,How + Using可以做什么,使用位置策略的名称也可以做到这一点。

现在,为什么两者都在那里,并且可以更好地保留更长版本,现在似乎没有直接提及。如果需要,您可以在Selenium community中添加查询。

答案 1 :(得分:0)

问候和致意,

如果您听说过@FindBy(how=How.CSS , using="locator"),您可能想学习如何操纵所有driver.findElement(By) REST呼叫。 基于REST的Selenium调用确保DOM中是否存在所谓的WebElement对象。 我们总是可以使用@FindBy(id="localtor"),基本上说, '嘿,ima专门针对此HTML代码执行REST调用,idkeylocator为值。

说完了,

@FindBy( how=How.CSS, using="locator" )合作,为我们带来了完全不同的游戏体验...... 见@CacheLookup, 它将帮助您使用浏览器缓存系统从浏览器缓存存储中找到所有内容,带来很多性能(REST调用运行时约50%)

您可以在这里阅读更多内容: http://toolsqa.com/selenium-webdriver/cachelookup-in-pageobjectmodel/

享受:)