2017-05-31 87 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")); 
} 
相關問題