首页 > 解决方案 > 无法使用硒检查复选框

问题描述

我正在尝试使用 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>

可能是什么问题?我尝试了复选框元素或文本元素(也可单击),但两者都不起作用。

标签: pythonselenium

解决方案


试试下面的代码:

    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

推荐阅读