2017-01-02 49 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]