此复选框有问题。我试图单击具有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
答案 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或单击后添加括号的问题。