2017-01-02 48 views
0

我試圖讓狀態費爾德如截圖所示Attached Image尋找元素​​</td>塊

<tbody> 
    <tr> 
     <td>STATUS</td> 
     <td>TXN_SUCCESS</td> 
    </tr> 
<tbody> 

我如何才能找到硒這個元素。一種方法是使用Xpath,但xpath會動態更改,因此下次嘗試查找此元素時會失敗?

我發現的XPath是/html/body/div[3]/center[2]/table/tbody/tr[10]/td[1]

任何人都可以請幫我在這?完整的HTML是如下

</style> 
</head> 
<body style="margin-top: 10px"> 
    <div id="logo" style="float:left; margin-left: 20px"> 
     <a href="http://www.test.com" target="_blank"> 
      <img src="images/test.png" alt="" /> 
     </a> 
    </div> 
    <div id="logo" style="float:right; margin-right: 20px"> 
     <a href="http://www.test.com" target="_blank"> 
      <img src="images/test_logo.png" alt="" /> 
     </a> 
    </div> 
    <div style="float: left; width: 100%;"> 
     <center><h3>Response</h3></center> 
     <p1> <font color="red">mid key not in property </font></p1> 
     <center> 
      <table border="1px; text-align: center;" class="tablesorter1""> 
      <thead> 
      <tr> 
       <th>Parameter Name</th> 
       <th>Parameter Value</th> 
      </tr> 
      </thead> 

        <tr> 
         <td>BANKNAME</td> 
         <td>HDFC</td> 
        </tr> 


        <tr> 
         <td>BANKTXNID</td> 
         <td>3816913151570020</td> 
        </tr> 


        <tr> 
         <td>CURRENCY</td> 
         <td>INR</td> 
        </tr> 


        <tr> 
         <td>GATEWAYNAME</td> 
         <td>HDFC</td> 
        </tr> 


        <tr> 
         <td>MID</td> 
         <td>hybref63266728877901</td> 
        </tr> 


        <tr> 
         <td>ORDERID</td> 
         <td>8956552</td> 
        </tr> 


        <tr> 
         <td>PAYMENTMODE</td> 
         <td>CC</td> 
        </tr> 


        <tr> 
         <td>RESPCODE</td> 
         <td>01</td> 
        </tr> 


        <tr> 
         <td>RESPMSG</td> 
         <td>Txn Success</td> 
        </tr> 


        <tr> 
         <td>STATUS</td> 
         <td>TXN_SUCCESS</td> 
        </tr> 


        <tr> 
         <td>TXNAMOUNT</td> 
         <td>1.00</td> 
        </tr> 


        <tr> 
         <td>TXNDATE</td> 
         <td>2017-01-02 15:15:05.0</td> 
        </tr> 


        <tr> 
         <td>TXNID</td> 
         <td>20170102111212800110166787500006704</td> 
        </tr> 


       <tr> 
       <td>Valid Checksum</td> 
       <td>false</td> 
       </tr> 
      </table> 
     </center> 
    </div> 
</body> 
</html> 
+0

請分享完整的HTML,你貼什麼是不夠的,幫助你。 – Guy

+1

永遠不要讓工具爲您生成XPath。一直寫你的XPath。所有的工具都會出錯,因爲他們給你的只是基於位置的XPath,它依賴於確切的文檔結構,並且有絲毫的差別。您需要基於*值*的XPath,而不是基於元素的位置。 – Tomalak

回答

0

您可以使用下面xpath提取狀態 -

//tr/td[contains(text(),'STATUS')]/following-sibling::td 

你可以像下面的代碼(Java代碼樣本)的狀態,並可以操縱按您的要求 -

String status = driver.findElement(By.xpath("//tr/td[contains(text(),'STATUS')]/following-sibling::td")).getText(); 
    if(status.equalsIgnoreCase("TXN_SUCCESS")) 
    { 
     System.out.println("Transaction Success"); 
    } 
    else 
    { 
     System.out.println("Transaction Failed"); 
    } 
0

您可以輕鬆地使用查找命名td

//td[text()='STATUS']

的發現價值,用途:

//td[text()='STATUS']/../td[2]