如何使用两种不同的XPATH值相同的密钥
问题描述:
EX:在两个不同的门户网站的XPath同一个对象是如何使用两种不同的XPATH值相同的密钥
//*[@id="abc"]/fieldset/div/div/div[1]/label
//*[@id="xyz"]/fieldset/div[1]/fieldset/div/div/div[1]/label
我想使用相同的密钥值。在运行时,如果硒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
请帮助如何使用或管道功能在这里。
答
一个简单的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"));
}
有两种表达一个右括号。这里'标签)'。这是一个简单的错字吗? – Andersson