使用Selenium WebDriver,
使用@FindBy为您的定位器添加注释时,您可以选择如何+使用的组合:
@FindBy(how = How.ID, using = "foobar") WebElement foobar;
或者您可以直接使用位置策略:
@FindBy(id = "foobar") WebElement foobar;
我总是使用更短的第二版。
我想不出为什么我应该使用更长的How + using版本。
所以我的问题是:
您是否需要使用[如何+使用]?
如果没有,为什么这个更长的版本甚至存在?
答案 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调用,id
为key
,locator
为值。
说完了,
与@FindBy( how=How.CSS, using="locator" )
合作,为我们带来了完全不同的游戏体验......
见@CacheLookup
,
它将帮助您使用浏览器缓存系统从浏览器缓存存储中找到所有内容,带来很多性能(REST调用运行时约50%)
您可以在这里阅读更多内容: http://toolsqa.com/selenium-webdriver/cachelookup-in-pageobjectmodel/
享受:)