簡體   English   中英

Python Selenium:獲取表格中某個元素的行列

[英]Python Selenium: Obtain row and column of an element in a table

我有一張包含許多不同元素的表格。 我想首先查找特定的(下面的結構顯示元素 220193 的行)基本上我想在這個大表上找到具有 href 220193 的元素,然后收集與該元素在同一行上的所有值。 然后對其他元素 220XYZ 重復此操作。

我正在考慮通過鏈接查找元素 220193,然后收集 xpath 以在表中找到 position(行和列),然后迭代不同的列,但我無法管理它工作。

 <tr role="row" aria-rowindex="1" class="table-warning"> <td role="cell" aria-colindex="1" class="table-warning b-table-sticky-column"><a href="**">220193</a></td>** <td aria-colindex="2" role="cell" class="">Unknown</td> <td aria-colindex="3" role="cell" class="">XXXXXX</td> <td aria-colindex="4" role="cell" class="">2022-06-30</td> <td aria-colindex="5" role="cell" class="">2022-07-01</td> <td aria-colindex="6" role="cell" class="">XXXXXX</td> <td aria-colindex="7" role="cell" class="table-info">1209</td> <td aria-colindex="8" role="cell" class="table-info">760</td> <td aria-colindex="9" role="cell" class="table-info">449</td> <td aria-colindex="10" role="cell" class="table-info">37.1%</td> <td aria-colindex="11" role="cell" class=""><button type="button" class="btn mr-2 btn-secondary btn-sm"> Open Report </button></td> <td aria-colindex="12" role="cell" class="">16</td> <td aria-colindex="13" role="cell" class="">1176</td> <td aria-colindex="14" role="cell" class="">18</td> <td aria-colindex="15" role="cell" class="">1.5%</td> <td aria-colindex="16" role="cell" class="">2</td> <td aria-colindex="17" role="cell" class="">1174</td> <td aria-colindex="18" role="cell" class="">0</td> <td aria-colindex="19" role="cell" class="">0.0%</td> <td aria-colindex="20" role="cell" class="">0</td> <td aria-colindex="21" role="cell" class="">1166</td> <td aria-colindex="22" role="cell" class="">8</td> <td aria-colindex="23" role="cell" class="">0.7%</td> <td aria-colindex="24" role="cell" class="">14</td> <td aria-colindex="25" role="cell" class="">1152</td> <td aria-colindex="26" role="cell" class="">0</td> <td aria-colindex="27" role="cell" class="">0.0%</td> <td aria-colindex="28" role="cell" class="">0</td> <td aria-colindex="29" role="cell" class="">1146</td> <td aria-colindex="30" role="cell" class="">6</td> <td aria-colindex="31" role="cell" class="">0.5%</td> <td aria-colindex="32" role="cell" class="">265</td> <td aria-colindex="33" role="cell" class="">876</td> <td aria-colindex="34" role="cell" class="">5</td> <td aria-colindex="35" role="cell" class="">0.4%</td> <td aria-colindex="36" role="cell" class="">10</td> <td aria-colindex="37" role="cell" class="">768</td> <td aria-colindex="38" role="cell" class="">98</td> <td aria-colindex="39" role="cell" class="">8.1%</td> <td aria-colindex="40" role="cell" class="">1</td> <td aria-colindex="41" role="cell" class="">767</td> <td aria-colindex="42" role="cell" class="">0</td> <td aria-colindex="43" role="cell" class="">0.0%</td> <td aria-colindex="44" role="cell" class="">4</td> <td aria-colindex="45" role="cell" class="">759</td> <td aria-colindex="46" role="cell" class="">4</td> <td aria-colindex="47" role="cell" class="">0.3%</td> <td aria-colindex="48" role="cell" class="">0</td> <td aria-colindex="49" role="cell" class="">759</td> <td aria-colindex="50" role="cell" class="">0</td> <td aria-colindex="51" role="cell" class="">0.0%</td> <td aria-colindex="52" role="cell" class="table-info">58</td> <td aria-colindex="53" role="cell" class="table-info">393</td> </tr>

這可能有效。

  1. 查找所有
  2. For 循環查找每個 tr 中的所有 td
  3. 如果第一個 td 的文本是 220193,則將所有 td 的文本存儲在res
keys = ['220193', '220XYZ']
res = []
for k in keys:
    rows = driver.find_elements(By.CSS_SELECTOR, 'tr')
    for r in rows:
        tds = driver.find_elements(By.CSS_SELECTOR, 'td')
        if tds[0] = k:
            res.append([td.text for td in tds])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM