2

使用 Selenium WebDriver,

使用@FindBy注释您的定位器时,您可以在 How + 组合之间进行选择:

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

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

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

我总是使用较短的第二个版本的方式。

我想不出我应该使用更长的 How+using 版本的任何理由。

所以我的问题是:

有没有需要使用【How + using】的情况?

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

4

2 回答 2

1

问候和问候,

如果您听说过,@FindBy(how=How.CSS , using="locator")您可能想学习如何操作所有driver.findElement(By)REST 调用。WebElementSelenium 基于 REST 调用保证DOM 中是否存在所谓的对象。我们总是可以用户说,'嘿,我通过as和as 值@FindBy(id="localtor")专门为此 HTML 标记执行 REST 调用。idkeylocator

照这样说,

与我们合作@FindBy( how=How.CSS, using="locator" )为我们提供了一个完全不同的游戏玩法......见面@CacheLookup,它将帮助您使用浏览器缓存系统来定位浏览器缓存存储中的所有内容,带来很多性能(REST 调用运行时约 50% 折扣)

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

享受 :)

于 2018-04-27T15:23:20.070 回答
0

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

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

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

似乎毫无疑问,How+Using 可以做什么,同样可以使用 location strategy 的名称。

现在,为什么两者都存在并且较长的版本最好不要使用,目前似乎没有直接提及。如果需要,您可以在Selenium 社区中添加查询。

于 2015-07-23T10:35:44.823 回答