【问题标题】:selenium following element python硒跟随元素python
【发布时间】:2019-04-07 00:46:51
【问题描述】:

我在 python 中使用 selenium。 我有一些元素是一个复选框,我想点击它。 我的问题是获取该元素,我只有文本 在我的情况下<td>xxxxx</td> 我想得到它上面的元素(前一个元素,他不是父亲,它们只是相邻的) 我试过这个:

driver.find_element_by_xpath("//input[@type='checkbox']/following::td[text()='xxxxx']").click()

但是没有用。

【问题讨论】:

  • 当您查看图片中的元素时,右键单击您想要的元素并将鼠标悬停在复制上,然后单击 xpath。当我开始使用 selenium 时,我希望我知道一个提示
  • 我不知道,谢谢:)

标签: python html selenium checkbox html-table


【解决方案1】:

您可以使用以下 xpath 从 td 导航

driver.find_element_by_xpath("//td[text()='xxxxx']/preceding-sibling::td[1]/input[@type='checkbox']").click()

或者您可以尝试使用父标签并导航具有类似输入标签的第 n 个 td

driver.find_element_by_xpath("//td[text()='xxxxx']/parent::tr/td[1]/input[@type='checkbox']").click()

【讨论】:

  • 它返回该行的第一列,而不是前一列(它上面的那个)
  • 在您的 html 示例中,我看到输入标记存在于第一个 td 列中
  • 是的,在这种情况下是真的。但我在不同的元素上尝试过,它总是返回第一列
  • 我已经更新了父导航并且还更新了之前的兄弟姐妹,这将立即提供兄弟姐妹
  • 你试过这个“//td[text()='xxxxx']/preceding-sibling::td[1]/input[@type='checkbox']”吗?我 100% 肯定这会立即找到之前的兄弟姐妹。请在开发者控制台中查看 $x("//td[text()='xxxxx']/preceding-sibling::td[1]/input[@type='checkbox']")
猜你喜欢
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 2021-03-05
相关资源
最近更新 更多