选择另一项,然后搜索Selenium(Python)

选择另一项,然后搜索Selenium(Python),python,selenium,selenium-webdriver,xpath,xpath-1.0,Python,Selenium,Selenium Webdriver,Xpath,Xpath 1.0,所以基本上我需要的帮助是: 我想用selenium-3.141.0和Python 3.8.5搜索BBXXCODE。 我使用的是驱动程序。通过xpath(“/*[contains(text(),'BBXXCODE')]”查找\u元素\u,正如预期的那样工作。但是我需要以某种方式提取顶部标记的id,因为我想使用驱动程序。通过xpath('/*[@id=“tr9”]/td[2]/h1')查找\u元素。单击()单击我需要选择这个文本 是否有办法做到这一点,或者我是否应该继续通过搜索我需要选择此文本而不是

所以基本上我需要的帮助是:

我想用selenium-3.141.0和Python 3.8.5搜索BBXXCODE。 我使用的是
驱动程序。通过xpath(“/*[contains(text(),'BBXXCODE')]”查找\u元素\u,正如预期的那样工作。但是我需要以某种方式提取顶部
标记的id,因为我想使用
驱动程序。通过xpath('/*[@id=“tr9”]/td[2]/h1')查找\u元素。单击()
单击
我需要选择这个
文本

是否有办法做到这一点,或者我是否应该继续通过
搜索我需要选择此文本而不是代码

这是代码段:

<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
我希望它基本上是清楚的,如果不是,请随时告诉我,我会尝试添加更多的细节。
提前感谢

提取与文本相关的
标记的idBBXXCODE,您可以使用以下任一项:

  • 使用xpath和父级

  • 使用xpath和
    祖先


    • 如果可能的话,我建议您只需在一个步骤中获取ID,然后再查找另一个元素(分两步)。您可以使用下面的XPath根据BBXXCODE的位置查找所需的范围

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

      就我的具体情况而言,这是最快也是最容易做到的。我可以将其与单击功能一起使用,并在一步内得到结果。这非常有效,但正如JeffC所提到的,答案是一步,不需要任何其他东西,只需要一个.click()。
      tr_id = driver.find_element_by_xpath("//td[contains(., 'BBXXCODE')]//ancestor::tr[1]").get_attribute("id")
      
      //tr[./td[contains(text(),'BBXXCODE')]]/td/span