我正在创建一个机器人,以在chrome浏览器中使用带有硒Web驱动程序的Python和质子邮件作为电子邮件服务来批量创建电子邮件帐户。当测试进入表单页面以两次输入密码等问题时,我在预填表单字段时遇到了问题,等等。
引发TimeoutException(消息,屏幕,堆栈跟踪)selenium.common.exceptions.TimeoutException:消息:
下面代码中显示的所有测试均有效,除了最后一个命中表单页面以预填密码的测试。我也想知道是否有一种方法可以生成每个人的随机密码,而不是对电子邮件和密码的值进行硬编码,以便我可以一次性生成多个帐户。创建数据后如何获取这些数据?
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
url = 'https://protonmail.com/'
driver = webdriver.Chrome(
'/Users/[MYUSER]/Downloads/chromedriver')
driver.get(url)
signUp = WebDriverWait(driver, 5).until(
EC.visibility_of_element_located((By.XPATH, '//* .
[@href="signup"]')))
signUp.click()
panel = WebDriverWait(driver, 5).until(
EC.element_to_be_clickable((By.CLASS_NAME, 'panel-heading')))
panel.click()
plan = WebDriverWait(driver, 2).until(
EC.element_to_be_clickable((By.ID, 'freePlan')))
plan.click()
WebDriverWait(driver, 15).until(
EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,
'iframe.top')))
username = WebDriverWait(driver, 3).until(
EC.element_to_be_clickable((By.ID, 'username')))
username.click()
username.send_keys('usernameForUsersd')
password = WebDriverWait(driver, 3).until(
EC.element_to_be_clickable((By.ID, 'password')))
password.click()
password.send_keys('passwordFORusers')
passwordc = WebDriverWait(driver, 3).until(
EC.element_to_be_clickable((By.ID, 'password')))
passwordc.click()
passwordc.send_keys('passwordFORusers')
我希望密码字段能预填。如果有一种方法可以不对send_keys字段进行硬编码并生成尚未使用的用户名/密码。甚至更好。