2017-05-31 88 views
0

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 

请帮助如何使用或管道功能在这里。

+0

有两种表达一个右括号。这里'标签)'。这是一个简单的错字吗? – Andersson

回答

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")); 
} 
相关问题