硒提交按钮元素不可交互

时间:2020-08-02 01:42:36

标签: python css selenium automation element

我最近发布了有关硒的一些麻烦,主要是anticaptcha API。香港专业教育学院设法解决了这个问题,但是我在这里遇到了一些麻烦。这是我当前的代码:

from time import sleep
from selenium import webdriver
from python_anticaptcha import AnticaptchaClient, NoCaptchaTaskProxylessTask
import os
import time

#Gather Api Key
api_key = 'INSERT API KEY HERE'

#Go to the acc registration site
browser = webdriver.Chrome()
browser.implicitly_wait(5)
browser.get('https://www.reddit.com/register/')
sleep(2)

#Input email
email_input = browser.find_element_by_css_selector("input[name='email']")
email_input.send_keys("INSERT EMAIL HERE")

#Continue to the next part of the registration process
continue_button = browser.find_element_by_xpath("//button[@type='submit']")
continue_button.click()

#Find and input the username and password fields
username_input = browser.find_element_by_css_selector("input[name='username']")
password_input = browser.find_element_by_css_selector("input[name='password']")

username_input.send_keys("INSERT USERNAME HERE")
password_input.send_keys("INSERT PASSWORD HERE")


#Gather site key
url = browser.current_url
site_key = "6LeTnxkTAAAAAN9QEuDZRpn90WwKk_R1TRW_g-JC"

#Acc do the solving process
client = AnticaptchaClient(api_key)
task = NoCaptchaTaskProxylessTask(url, site_key)
job = client.createTask(task)
print("Waiting for recaptcha solution")
job.join()

# Receive response
response = job.get_solution_response()
print(response)
print("Solution has been gotted")

# Inject response in webpage
browser.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "%s"' % (response))
print("Injecting Solution")

# Wait a moment to execute the script (just in case).
time.sleep(1)
print("Solution has been gotted for sure")

# Press submit button
browser.implicitly_wait(10)
Signup = browser.find_element_by_xpath('//input[@type="submit"]')
Signup.click()

除最后一行外,一切都运行顺利。我认为程序可以识别“提交”按钮,但由于某种原因,它给出了一个不可交互的错误。对于解决此问题的任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

使用硒时,我遇到了同样的问题。有时,即使硒已识别出该元素,其功能仍未“就绪”。在单击“提交”按钮之前添加延迟可以解决该问题。