如何使用python修复Selenium Web驱动程序``异常错误''以自动生成密码

时间:2019-07-26 03:05:24

标签: python python-3.x selenium google-chrome selenium-webdriver

我正在创建一个机器人,以在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字段进行硬编码并生成尚未使用的用户名/密码。甚至更好。

0 个答案:

没有答案