In the new screenshot you provided, I found that your web page has <td>
tags.
<td role="gridcell">...</td>
This implies that the HTML has at least 1 <TABLE>
element which has one or more <tr>
element. The <tr>
element represents rows of a grid. The overall structure of the page would be as follows.
<html>
...<!-- more markup here -->
<body>
...
<table id="TBL1">
<tbody>
<tr>
<td><!-- Type/Tool --></td>
<td><!-- Config --></td>
<td><!-- Resource --></td>
<td><!-- Date --></td>
<td><!-- Status --></td>
<td><!-- Summary --></td>
<td><!-- Actions-->
<button><!-- --></button>
<button><!-- Download --></button>
<button><!-- --></button>
<button><!-- --></button>
<button><!-- --></button>
</td>
</tr>
<tr>....</tr>
<!-- more rows here -->
<tr>....</tr>
</tbody>
</table>
...<!-- more markups here -->
</body>
</html>
Now let me assume that the table has id="TBL1"
that uniquely identifies that table among all.
The Download button in the 1st row can be expressed by a xpath:
//table[@id='TBL1']/tbody/tr[1]/td[7]/button[2]
The Download button in the 2nd row can be expressed by a xpath:
//table[@id='TBL1']/tbody/tr[2]/td[7]/button[2]
The Download button in the 3rd row can be expressed by a xpath:
//table[@id='TBL1']/tbody/tr[3]/td[7]/button[2]
and so on. No matter how many rows you have in the page, you can identify a single Download button by those XPath expressions in a uniform format.