根据动态 Web table 中的列和行名称获取特定值,其中列和行的位置也是动态的

Get specific value based on column & row name from dynamic Web table in which columns & rows position also dynamic

我必须根据列名和行名打印特定值。 Bt 问题是列位置和行位置每次都会更改。 table 数据是动态的,值在不断变化。所有的值都不是常量my dynamic web table is。我想要 2001 年四月的具体值。

这是基于所附屏幕截图的示例 table。

<html>
 <table id='table1' border=" 1px solid black">
 <tr>  
  <th>Month/Year</th>
  <th>2003</th>
  <th>2004</th>
  <th>2001</th>
  <th>2005</th>
  <th>2002</th>
 </tr> 
 <tr> 
  <td>May</td>
  <td>122</td>
  <td>84</td>
  <td>7777</td>
  <td>12</td>
  <td>122</td>
 </tr>

 <tr> 
  <td>Feb</td>
  <td>45</td>
  <td>445</td>
  <td>565</td>
  <td>222</td>
  <td>122</td>
 </tr>
 <tr> 
  <td>April</td>
  <td>3556</td>
  <td>212</td>
  <td>21</td>
  <td>1546</td>
  <td>855</td>
 </tr>
 </table>
 <span>-----------------------------------------------</span>
 <table id='table2' border=" 1px solid black">
 <tr>  
  <th>Month/Year</th>
  <th>2002</th>
  <th>2001</th>
  <th>2003</th>
  <th>2004</th>
  <th>2005</th>
 </tr> 
 <tr> 
  <td>April</td>
  <td>120</td>
  <td>243</td>
  <td>221</td>
  <td>21</td>
  <td>65</td>
 </tr>

 <tr> 
  <td>May</td>
  <td>96</td>
  <td>146</td>
  <td>454</td>
  <td>452</td>
  <td>4566</td>
 </tr>
 <tr> 
  <td>March</td>
  <td>788</td>
  <td>139</td>
  <td>10</td>
  <td>1001</td>
  <td>013</td>
 </tr>
 <tr> 
  <td>Feb</td>
  <td>552</td>
  <td>1245</td>
  <td>545</td>
  <td>41</td>
  <td>41</td>
 </tr>
 </table>
</html>

下面是从 table 1.

获取 "April/2001" 值的 xpath
//table[@id='table1']//td[position()=count(//th[normalize-space(.)='Month/Year']/preceding-sibling::th)+1 and normalize-space(.)='April']/ancestor::tr//td[position()=count(//table[@id='table1']//th[normalize-space(.)='2001']/preceding-sibling::th)+1]

和 xpath 从 table 中获取 "April/2001" 的值 2.

//table[@id='table2']//td[position()=count(//th[normalize-space(.)='Month/Year']/preceding-sibling::th)+1 and normalize-space(.)='April']/ancestor::tr//td[position()=count(//table[@id='table2']//th[normalize-space(.)='2001']/preceding-sibling::th)+1]

上面两个 xpath 之间的唯一区别是 table id **//table[@id='tableX**。请根据您的应用程序值更新 table 定位器。 让我知道这是否有帮助。