Select 另一个项目然后搜索 Selenium (Python)

Select another item then searched Selenium (Python)

基本上我需要帮助的是:

我想用 selenium-3.141.0 和 Python 3.8.5 搜索 BBXXCODE。 我正在使用按预期工作的 driver.find_element_by_xpath("//*[contains(text(),'BBXXCODE')]"。但是我需要以某种方式提取顶部 <tr> 标签的 ID,因为我想使用 driver.find_element_by_xpath('//*[@id="tr9"]/td[2]/h1').click() 来点击 I need to select this 文本。

有没有办法做到这一点,或者我应该继续通过 I need to select this 文本而不是代码进行搜索?

这是代码片段:

<tr id='tr9'>
    <td></td>
    <td role='gridcell'>
        <span class='link'>I need to select this</span>
    </td>
    <td role='gridcell'>
        BBXXCODE
    </td>
</tr>

我希望大部分内容都清楚,如果没有,请随时告诉我,我会尝试添加更多详细信息。 提前致谢

要提取与文本 BBXXCODE 有关的 <tr> 标签的 ID,您可以使用以下任一方法 :

  • 使用 xpathparent:

    tr_id = driver.find_element_by_xpath("//td[contains(., 'BBXXCODE')]//parent::tr[1]").get_attribute("id")
    
  • 使用 xpathancestor:

    tr_id = driver.find_element_by_xpath("//td[contains(., 'BBXXCODE')]//ancestor::tr[1]").get_attribute("id")
    

与其先获取 ID 然后再查找另一个元素(分两步),我建议,如果可能的话,您只需一步即可获取它。您可以使用下面的 XPath 根据 BBXXCODE 的位置找到所需的 SPAN。

//tr[./td[contains(text(),'BBXXCODE')]]/td/span