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定位元素
请注意,我想同时计算xpath1、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-“或”在谓词表达式中是允许的,但在位置路径中是不允许的。“|”之所以有效,是因为它是与“或”截然不同的联合运算符。有关更多信息,请参阅。