EX:两个不同门户中同一对象的Xpath是
//*[@id="abc"]/fieldset/div/div/div[1]/label
//*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label
我想在同一个键中使用这两个值。在运行时,如果selenium webdriver应该找到任何人并继续。我试过下面的一个,但它不起作用。
//*[@id="abc"]/fieldset/div/div/div[1]/label) | //*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label
//*[@id="abc"]/fieldset/div/div/div[1]/label) or //*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label
请在这里帮助如何使用或管道功能。
答案 0 :(得分:0)
一个简单的try catch块可以帮助你:
try{
//first use this
driver.findElement(By.xpath("//*[@id="abc"]/fieldset/div/div/div[1]/label"));
}
catch(Exception e)
{
//if caught in exception then use this
driver.findElement(By.xpath("//*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label"));
}
或者你可以使用以下干净的方法:
List<WebElement> itemList1 = driver.findElements(By.xpath("//*[@id="abc"]/fieldset/div/div/div[1]/label"));
List<WebElement> itemList2 = driver.findElements(By.xpath("//*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label"));
if(listItem1.size() >0 ){
driver.findElement(By.xpath("//*[@id="abc"]/fieldset/div/div/div[1]/label"));
}
else if (listItem2.size() >0 ){
driver.findElement(By.xpath("//*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label"));
}