【问题标题】:How to click on checkbox with selenium in python如何在python中单击带有硒的复选框
【发布时间】:2021-04-30 03:59:23
【问题描述】:

我正在尝试从某个网站中选择一个复选框。这是他们 HTML 代码的一部分。

<div class="deliveryCheckboxContainer">
                                                        
<input class="deliveryCheckbox hiddenCheckbox" id="deliveryCheckbox-684" data-deliveryid="684" type="checkbox" /><label for="deliveryCheckbox-684" class=" checkbox classic"></label>
        
</div>

我尝试了几种不同的方法。我要么收到一个错误,提示该元素不存在,要么无法与之交互。

这是我尝试过的一个例子:

browser.find_element_by_xpath('//*[@id="deliveryCheckbox-684"]').click()

【问题讨论】:

  • 您是否尝试点击label 元素?

标签: python selenium checkbox


【解决方案1】:

这可能是时间问题。许多页面在加载后会动态构建 DOM 结构。

在加载 URL 后尝试添加睡眠一两秒,然后再尝试查找该元素。为了获得最大的稳健性,您可以将其置于循环中并在 10 秒左右后超时。

【讨论】:

  • 添加硬编码延迟不是一个好习惯。等到元素可见/首选可点击。
  • 对于调试,它是最快的解决方案。找到元素后,会添加显式等待而不是 time.sleep()。
【解决方案2】:

首先,检查上面关于时间问题的答案。 其次,我认为您正在尝试查找动态 id 定位器。 尝试通过css查找。

browser.find_element_by_css_selector('.deliveryCheckbox.hiddenCheckbox').click()

另外,在label 是您真正需要点击的情况下尝试使用xpath:

browser.find_element_by_xpath("//label[contains(@for,'deliveryCheckbox')]")

【讨论】:

    【解决方案3】:
    WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH,"//label[@for='deliveryCheckbox-684']"))).click()
    

    您需要等待元素可点击并点击标签标签。

    导入

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait 
    from selenium.webdriver.support import expected_conditions as EC
    

    【讨论】:

    • 感谢您的所有回答,这个有效。
    【解决方案4】:

    据我所知,你不能点击 selenium 中的隐藏元素,并且类“hiddenCheckbox”暗示它确实是隐藏的。除此之外,包括您遇到的错误和您尝试抓取的网站将使额外的帮助成为可能。目前我只能告诉你以某种方式使复选框可见。

    【讨论】:

      【解决方案5】:

      尝试使用time.sleep() 函数来查看它是否能够单击复选框。如果是,则使用 try 和 except 方法来查找复选框是否已加载,然后单击它并继续前进。如上所述,睡眠功能不是一个好习惯。

      如果程序无法找到该复选框,请尝试通过driver.find_element_by_id 导航到该复选框。按 Id 导航元素是迄今为止我用过的最好的技术。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 2020-05-11
        • 1970-01-01
        • 2022-01-17
        • 2015-08-02
        • 1970-01-01
        • 2023-03-07
        相关资源
        最近更新 更多