Java 一旦找到正确的对象,如何使@FindAll注释停止查找对象?
操作系统:Windows 10 Selenium版本:3.4 @FINDALL注释应至少匹配一个给定条件 这是OR: 网页的URL: 网站元素:-Java 一旦找到正确的对象,如何使@FindAll注释停止查找对象?,java,selenium,xpath,Java,Selenium,Xpath,操作系统:Windows 10 Selenium版本:3.4 @FINDALL注释应至少匹配一个给定条件 这是OR: 网页的URL: 网站元素:- @FINDALL ({ @findby(xpath = "//input[@name='s']"), @findby(xpath = "//a[contains(.,'Magic Mouse')]") }) public WebElement Header__txtSearch; 我正在尝试使用多个定位器验证页面上的元素 当我给出2个正确的X
@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'] or //a[contains(.,'Magic Mouse')]")
public WebElement Header__txtSearch;
您可以在中使用
或
,以获取第一个匹配的定位器
@findby(xpath = "//input[@name='s'] or //a[contains(.,'Magic Mouse')]")
public WebElement Header__txtSearch;
您需要将WebElement作为输出或布尔值获取吗?@Andersson我需要WebDriver在流与提供的任何一个定位器匹配后立即将流返回到我的程序。您需要将WebElement作为输出或布尔值获取吗?@Andersson我需要WebDriver在流与提供的定位器匹配后立即将流返回到我的程序。是的我已经知道这一点,但这个xpath只是一个例子。我想使用多个定位器。假设ID和XPath是同一个元素,这就是我尝试使用@FindAll注释的原因。但面临的问题是,驱动程序在搜索所有定位器之前不会返回。它应该在找到一个定位器后立即返回程序。我想使用多个定位器。假设ID和XPath是同一个元素,这就是我尝试使用@FindAll注释的原因。但面临的问题是,驱动程序在搜索所有定位器之前不会返回。它应该在找到一个定位器后立即返回程序。我想使用多个定位器。假设ID和XPath是同一个元素,这就是我尝试使用@FindAll注释的原因。但面临的问题是,驱动程序在搜索所有定位器之前不会返回。一旦找到一个定位器,它应该立即返回程序。@samnit
@FINDALL
将查找所有定位器。或
条件将为您提供您想要的内容,它将在定位器上找到后立即返回。因此,是否有一种方法可以在单个元素中使用多个定位器,如ID、CSS、Xpath,并在找到其中任何一个后立即返回。@samnit您可以创建一个Xpath(或者最好是CSS选择器)它包含了查找您想要使用的元素的各种方法。我想使用多个定位器。假设ID和XPath是同一个元素,这就是我尝试使用@FindAll注释的原因。但面临的问题是,驱动程序在搜索所有定位器之前不会返回。一旦找到一个定位器,它应该立即返回程序。@samnit@FINDALL
将查找所有定位器。或
条件将为您提供您想要的内容,它将在定位器上找到后立即返回。因此,是否有一种方法可以在单个元素中使用多个定位器,如ID、CSS、Xpath,并在找到其中任何一个后立即返回。@samnit您可以创建一个Xpath(或者最好是CSS选择器)它包含查找要使用的元素的各种方法。