【问题标题】:Select a Checkbox in a Table If Row Includes X Value with Selenium Python如果行包含带有 Selenium Python 的 X 值,则在表中选择一个复选框
【发布时间】:2017-08-03 23:58:32
【问题描述】:

我正在使用 Selenium 浏览报告网站。

我登录并导航到可以搜索特定人员的页面,然后我得到一个信息表。

每一行都有一个复选框,我可以单击该复选框并针对该特定记录执行操作。

我希望在对应于 17-18 的年份的行中打一个复选框。但是如果另一个元素满足特定值,我不知道如何选择一个元素

【问题讨论】:

  • 发布网站,发布您的代码。人们更有可能帮助您,因为我们可以简单地复制、编辑并在此处发布正确的结果...
  • 能否在问题中放一个html代码或表格截图,这样有助于更好地回答问题
  • 我已经添加了我必须清除敏感信息的 HTML 代码。从源头看有点乱。
  • 请阅读How to Ask,尤其是关于minimal reproducible example(MCVE)和How much research effort is expected?的部分,这将帮助您调试自己的程序并自己解决问题。如果您这样做并且仍然卡住,您可以返回并发布您的 MCVE、您尝试过的内容以及执行结果(包括任何错误消息),以便我们更好地帮助您。还提供指向页面和/或相关 HTML 的链接。

标签: python html selenium


【解决方案1】:

您可以找到包含文本 17-18 的所有行,然后您可以使用该元素查询该行的复选框

rows = driver.find_elements_by_xpath("//td[@class='academicYearColumnValue' and text()='17-18']/..")
for row in rows: 
    checkbox = row.find_element(".//input[@type='checkbox']")
    checkbox.click()

或者您可以使用以下 xpath 简单地查询您感兴趣的所有复选框。

all_checkboxes = driver.find_elements_by_xpath("//td[@class='academicYearColumnValue' and text()='17-18']/../input[@type='checkbox']")
for checkbox in all_checkboxes:
    checkbox.click()

【讨论】:

    猜你喜欢
    • 2014-08-31
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多