Я нашел вашу ошибку, и у меня есть решение для вас. Позвольте мне сначала определить вам проблему. Когда вы нажимаете «Создать новую учетную запись», открывается новое окно. НО ваш бот все еще не понимает, что вы находитесь в первом окне (в том, которое вы нажимаете на первую кнопку, чтобы создать учетную запись). Таким образом, бот пытается увидеть, есть ли ввод имени. Вот почему терпит неудачу. Таким образом, решение заключается в том, что вы должны изменить окно, которое вы хотите указать. То, как вы можете это сделать, записано внутри блока кода.
CODE
from selenium import webdriver
import time
path = '/home/avionerman/Documents/stack'
driver = webdriver.Firefox(path)
driver.get('https://www.google.com/intl/nl/gmail/about/#')
try:
print('locating create account button')
create_account_button = driver.find_element_by_class_name('h-c-button')
except:
print("error, couldn't find create account button")
try:
create_account_button.click()
print('navigating to creation page')
except:
print('error navigating to creation page')
time.sleep(15)
# Keeping all the windows into the array named as handles
handles = driver.window_handles
# Keeping the size of the array in order to know how many windows are open
size = len(handles)
# Switch to the second opened window (id:1)
driver.switch_to.window(handles[1])
# Print the title of the current page in order to validate if it's the proper one
print(driver.title)
time.sleep(10)
first_name_input = driver.find_element_by_id('firstName')
first_name_input.click()
first_name_input.send_keys("WhateverYouWant")
last_name_input = driver.find_element_by_id('lastName')
last_name_input.click()
last_name_input.send_keys("WhateverYouWant2")
username_input = driver.find_element_by_id('username')
username_input.click()
username_input.send_keys('somethingAsAUsername')
pswd_input = driver.find_element_by_name('Passwd')
pswd_input.click()
pswd_input.send_keys('whateveryouwant')
pswd_conf_input = driver.find_element_by_name('ConfirmPasswd')
pswd_conf_input.click()
pswd_conf_input.send_keys('whateveryouwant')
time.sleep(20)
Итак, если вы введете go в строку 21, вы увидите, что У меня есть несколько комментариев, чтобы рассказать вам, что делают эти строки (с 21 по 31).
Кроме того, я вставил весь необходимый вам код (имя, фамилия и т. Д. c) , Вам нужно только найти кнопку создания (последнюю).
Примечание : попробуйте использовать идентификаторы в таких случаях, а не имена классов (когда идентификаторы ясны и уникальны), как я уже сделал для тебя.