mar*_*875 3 python selenium tumblr webautomation python-3.x
我正在使用tumblr测试我的应用程序,我必须在我执行程序时登录和注销.在这样做时,我无法点击一个不断弹出的复选框.如何在python中使用selenium-webriver点击它?
我已经尝试过选择xpaths,... by_ids和by_classes,它们将无法工作,所以现在我正在尝试使用鼠标坐标来物理点击该项目.(这是在tumblr登录页面,fyi)
以上是我想要选择的项目的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")
Run Code Online (Sandbox Code Playgroud)
小智 5
我意识到这是一个老线程,但我无法在其他任何地方找到答案.最后我想出来如下.
注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 + " ")
Run Code Online (Sandbox Code Playgroud)
小智 -3
这是一个在 Java 中适用于我的简单示例:
driver.findElement(By.id("checkbox_id")).click();
Run Code Online (Sandbox Code Playgroud)
在Python中,它似乎是:
driver.find_element_by_id("checkbox_id").click()
Run Code Online (Sandbox Code Playgroud)