Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 通过多个不同的XPath查找元素_Java_Selenium_Xpath - Fatal编程技术网

Java 通过多个不同的XPath查找元素

Java 通过多个不同的XPath查找元素,java,selenium,xpath,Java,Selenium,Xpath,我有这段代码,我不知道为什么它不工作 String xpath1="//span[contains(text(),'I am span')]"; String xpath2="//div[contains(text(),'I am Div')]"; String xpath3="//input[contains(text(),'I am input')]"; 然后我像这样和所有的XPath战斗 String majorxpath=&q

我有这段代码,我不知道为什么它不工作

String xpath1="//span[contains(text(),'I am span')]";
String xpath2="//div[contains(text(),'I am Div')]";
String xpath3="//input[contains(text(),'I am input')]";
然后我像这样和所有的XPath战斗

String majorxpath="\""+xpath1+" or "+xpath2+" or "+xpath3+"\"";
List<Webelemnt> results=driver.findelements(By.xpath(majorxpath));
String majorxpath=“\”“+xpath1+”或“+xpath2+”或“+xpath3+”\”;
列表结果=driver.findelements(By.xpath(majorxpath));
这将返回错误,无法通过majorxpath定位元素

请注意,我想同时计算x
path1、xpath2、xpath3
,如果其中任何一个存在,webelemnt应该返回
结果


另外,请注意xpath是单独工作的,但我想看看它们是否存在,并返回webElemnt。

请尝试下面的
xpath
来识别

//span[contains(text(),'I am span')] | //div[contains(text(),'I am Div')] | //input[contains(text(),'I am input')]
这是可行的,我想知道为什么会出现“或”```\`+xpath1+“|”+xpath2+“|”`+xpath3+“\``”不工作。@BountyCollector-“或”在谓词表达式中是允许的,但在位置路径中是不允许的。“|”之所以有效,是因为它是与“或”截然不同的联合运算符。有关更多信息,请参阅。