Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一旦找到正确的对象,如何使@FindAll注释停止查找对象?_Java_Selenium_Xpath - Fatal编程技术网

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

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

操作系统: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个正确的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选择器)它包含查找要使用的元素的各种方法。