Элемент кнопки отправки Selenium не взаимодействует - PullRequest
0 голосов
/ 02 августа 2020

Недавно я писал о некоторых проблемах, которые у меня были с селеном, в первую очередь с 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 голосов
/ 02 августа 2020

У меня была такая же проблема, когда я использовал селен. Иногда случается, что даже если селен распознал элемент, его функция не «готова». Добавление задержки перед нажатием кнопки отправки должно решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...