一旦找到正确的对象@FindAll如何使注释停止查找对象?



OS: Windows 10

硒版本:3.4

@FINDALL注释应至少匹配给定条件之一。

这是 OR :网页网址 : http://store.demoqa.com/

网络元素 : -

@FINDALL ({
@findby(xpath = "//input[@name='s']"),
@findby(xpath = "//a[contains(.,'Magic Mouse')]")
})
public WebElement Header__txtSearch;

我正在尝试使用多个定位器验证页面上的元素。

当我给出 2 个正确的 XPath 值时,驱动程序会在网页上快速识别它并正常返回。但是当我将第一个作为正确,第二个为不正确时,它仍然返回 true 该元素已找到,但它等待初始化驱动程序时提供的对象超时(隐式等待(。

有没有办法,如果它找到第一个元素,那么它会立即将我们返回为 true,而不是匹配下一个定位器,这样测试执行就不会花费更多时间向前推进。

找到正确的定位器信息后如何停止?

或者是否有解决方法,我可以对一个元素使用多个定位器,以便驱动程序在正确匹配一个定位器后立即返回 true?

您是否尝试通过"|"将选择器组合为一个? 比如:

@findby(xpath = "//input[@name='s']|//a[contains(.,'Magic Mouse')]")
public WebElement Header__txtSearch;

您可以使用 中的or来获取第一个匹配的定位器。

@findby(xpath = "//input[@name='s'] or //a[contains(.,'Magic Mouse')]")
public WebElement Header__txtSearch;

最新更新