如何在Python中使用Selenium选中复选框

时间:2019-03-13 14:36:54

标签: python selenium checkbox

此复选框有问题。我试图单击具有id,名称,XPath,CSS选择器的搜索元素,并且包含文本,但仍然无法单击此复选框。另外,我已经尝试了另一个具有类似HTML代码的网站,并且在该网站上,足以查找id和单击。有什么想法吗?

<div class="agree-box-term">
    <input tabindex="75" id="agree" name="agree" type="checkbox" value="1">
    <label for="agree" class="checkbox-special">* Zapoznałam/em się z <a href="https://worldbox.pl/content/regulamin,27.html" target="_blank">Regulaminem sklepu internetowego</a> i akceptuję jego postanowienia.<br></label>
</div>

这是我的Python代码https://codeshare.io/5zo0Jj

4 个答案:

答案 0 :(得分:1)

我使用过javaScript Executor,它会单击该元素。但是,我还检查了webdriver单击是否起作用。

driver.execute_script("arguments[0].click();", driver.find_element_by_id("agree"))

答案 1 :(得分:1)

我不知道为什么会这样,但是根据我的经验,某些框不接受点击,但接受“鼠标按下”触发器。

尝试:

driver.execute_script('$("div.agree-box-term input#agree").trigger("mousedown")')

此解决方案确实依赖页面上的jquery,如果不是,我们可以用javascript编写

答案 2 :(得分:0)

您的代码是否包含嵌套的html标签?例如:

<html>

    <div>

        <p> Some text </p>

        <html>
            That block can't be traversed!
        </html>

    </div>

</html>

第二个HTML标记内的所有内容都无法遍历/访问。尝试查看是否是这种情况。


在任何其他情况下,以下代码都非常适合您的代码段:

driver.find_element_by_css_selector('#agree').click()

答案 3 :(得分:0)

r = driver.find_element_by_xpath("//*[@id="form-order"]/div[2]/div[4]/label")
r.click()

这对您有用吗?有时候,这只是选择正确的xpath或单击后添加括号的问题。