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;