python - 无法使用硒检查复选框
问题描述
我正在尝试使用 Selenium 检查复选框。这是复选框的元素。
<div class="ams-item-text ng-binding" ng-bind-html="amssh.create_label(item)" ng-click="toggle_check_node(item)" role="button" tabindex="0">all contract signed</div>
我直接复制了这个元素的 x-path 并编写了以下代码:
browser.find_element_by_xpath('//*[@id="advancedcontents"]/div/div/div[2]/div/div[1]/div[1]/div/div/div[2]/div[2]/div/div[2]/div[3]/div[2]').click()
但它永远不会单击我想要的复选框,而是单击下面的复选框方式,即:
<div class="ams-item-text ng-binding" ng-bind-html="amssh.create_label(item)" ng-click="toggle_check_node(item)" role="button" tabindex="0">future</div>
可能是什么问题?我尝试了复选框元素或文本元素(也可单击),但两者都不起作用。
解决方案
试试下面的代码:
wait = WebDriverWait(browser, 20)
wait.until(EC.element_to_be_clickable(By.XPATH, "//div[contains(.,'all contract signed')]")).click()
注意:将以下导入添加到您的解决方案中
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
推荐阅读
- powershell - Powershell 在 foreach 中没有得到 Item 异常
- javascript - 从 HTML 输入数据生成 CSV 文件
- python - Python:if...elif 没有返回正确的结果
- angular - 子文件夹中的角度路由不起作用
- postgresql - PostgreSQL 中的性能问题
- r - 使用新的搜索控制台通过 R 获取 Googlebot 抓取错误
- c++ - 矩阵乘法优化
- sql - 在多数据库解决方案中检索哪些数据库和表包含特定的列名
- javascript - 如何使用谷歌脚本解析 XML 字符串并将其作为结构化数据输出到谷歌表格中的新选项卡?
- jupyter-notebook - 如何为在 K8s 上运行的 JuPyterHub 上的每个笔记本设置参数