首页 > 解决方案 > 选择另一个项目然后搜索 Selenium (Python)

问题描述

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

我想用 selenium-3.141.0 和 Python 3.8.5 搜索 BBXXCODE。我正在使用driver.find_element_by_xpath("//*[contains(text(),'BBXXCODE')]"哪个按预期工作。但我需要以某种方式提取顶部标签的 id <tr>,因为我想用来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>

我希望它很清楚,如果没有,请随时告诉我,我会尝试添加更多细节。提前致谢

标签: pythonseleniumselenium-webdriverxpathxpath-1.0

解决方案


要提取<tr>与文本BBXXCODE相关的标签 id,您可以使用以下任一Locator Strategies

  • 使用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")
    

推荐阅读