使用 selenium 但不使用 xpath 在 table 的同一行中抓取相关元素

scrape related elements in the same row of a table using selenium but without xpath

我正在尝试使用 selenium 和 PhantomJS 抓取这个 HTML。行模式从第 1 行到第 N 行重复,我不知道会有多少行。

<table id="TableName">
<thead></thead>
<tbody>
    <tr id="Row 1">
        <td class="Details column">
        </td>
        <td class="More details column">
        </td>
        <td class="Extra details column">
            <div class="unique_information">
                <div class="print-only">ID # 1234</div>
            </div>
        </td>
        <td class="Numbers column">
            <div class="numbers-data">
                <div>
                    <label class="specific_number">123456</label>
                </div>
            </div>      
        </td>
        <td class="Numbers column">
            <div class="numbers-data">
                <div>
                    <label class="specific_number">345678</label>
                </div>
            </div>      
        </td>   
        <td class="Numbers column">
            <div class="numbers-data">
                <div>
                    <label class="specific_number">234567</label>
                </div>
            </div>
        </td>
    </tr>
</tbody>

在这种情况下,我试图找到最大的 class_by_name(specific_number)(即 345678),它可以在任何 "Number Columns" 中,也可以在与我要查找的特定 "unique_information" 关联的同一行(即 1234)。

我不擅长 xpath,我不会提前知道具有 unique_information 的父行(即可能在第 1、2、3 行等)所以我我正在努力想出一个 contains 语句来确保两者都是真的。

def findLargestNumInRow(id):
    xpath = '//table[@id="TableName"]/tbody/tr[td[3][div/div[contains(text(),"{0}")]]]'.format(id)
    tds = driver
              // find row which unique_information contains given id
              .find_element_by_xpath(xpath)
              // find all number child td
              .find_elements_by_css_selector('td.Numbers')

    numbers = [ td.text * 1 for td in tds]
    return numbers.sort()[-1]

findLargestNumInRow('1234')