单击带有 selenium-webdriver 的复选框

新手上路,请多包涵

我正在使用 tumblr 测试我的应用程序,我必须在执行程序时登录和注销。这样做时,我无法单击不断弹出的复选框。如何在 python 中使用 selenium-webriver 来单击它?

我试过选择 xpaths、…by_ids 和 by_classes,它们不起作用,所以现在我尝试使用鼠标的坐标来物理单击该项目。 (这是在 tumblr 登录页面上,仅供参考)

在此处输入图像描述

以上是我要选择的项目的 html。

(编辑:)我有以下选择器:

 #checkbox = driver.find_element_by_id("recaptcha-anchor")
#checkbox = driver.find_element_by_id("g-recaptcha")
#driver.find_element_by_xpath("//*[@id='recaptcha-token']")
#driver.find_element_by_css_selector("#recaptcha-anchor")
#driver.find_element_by_xpath("//*[@id='recaptcha-anchor']")
#driver.find_element_by_id("recaptcha-token").click()
#driver.find_element_by_class_name('rc-anchor-center-container')
#checkbox = driver.find_element_by_id("recaptcha-anchor")

原文由 marriedjane875 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 848
2 个回答

这是一个适用于我的 Java 简单示例:

 driver.findElement(By.id("checkbox_id")).click();

在 Python 中,它似乎是:

 driver.find_element_by_id("checkbox_id").click()

原文由 Amine OUAFI 发布,翻译遵循 CC BY-SA 3.0 许可协议

我意识到这是一个旧线程,但我无法在其他任何地方找到答案。最后我想通了如下。

注意 1:这会勾选 recaptcha 框,但不会解决问题,您仍然需要手动执行此操作。

注意 2:这是在 macOS 上,因此您可能需要在 Windows 上为 chrome_path 使用不同的格式

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#modify line below to location of your chromedriver executable
chrome_path = r"/Users/Username/chromedriver"
driver = webdriver.Chrome(chrome_path)
driver.get("https://www.btcmarkets.net/login")

username = driver.find_element_by_id("userIdText")
username.send_keys("Us3rn4me")

password = driver.find_element_by_id("userPasswordText")
password.send_keys("Pa55w0rD")

#the line below tabs to the recaptcha tickbox and ticks it with the space bar
password.send_keys(Keys.TAB + Keys.TAB + " ")

原文由 Alex Wilson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题