我想在ProtonMail上创建10封电子邮件。
我已经使用PyAutoGui
和Selenium
实现了半个部件的自动化,但是我想让它像一个检查器一样,因为有时候用户名会被取走。现在我想做的是:
Usernames
either by Selenium or another package(suggestions if you know any)
这就是我现在想要建立的概念。我真的很抱歉,如果我听起来是垃圾,但我合法地开始使用Python几天前,它还不到一个星期,所以.我正在学习:P
我已经自动化了Selenium填写ProtonMail表单以便注册/注册的部分,但有时我会收到用户名已经被接受的错误,我希望脚本检查该错误消息是否弹出,如果弹出,将执行一个“保留代码”行来解决这个问题。然后,代码可以继续。但是,如果元素不弹出,我希望脚本不干扰“保留代码”。
如果有人来这里只是为了准备代码,那么您可以这样做:
import selenium
import pyautogui
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#Variables
protonmail = "https://mail.protonmail.com/create/new?language=en"
username = input("Please enter your desired username for the email:")
password = input("Enter your password:")
driver = webdriver.Firefox()
time.sleep(4)
driver.get(protonmail)
time.sleep(7)
pyautogui.click(535, 501)
time.sleep(1)
pyautogui.typewrite(username)
time.sleep(2)
driver.find_element_by_xpath(
"/html[1]/body[1]/div[2]/div[1]/div[1]/div[1]/div[1]/form[1]/div[1]/div[2]/div[1]/div[1]/input[1]").send_keys(
password)
time.sleep(2)
driver.find_element_by_xpath(
"/html[1]/body[1]/div[2]/div[1]/div[1]/div[1]/div[1]/form[1]/div[1]/div[2]/div[2]/div[1]/input[1]").send_keys(
password)
time.sleep(2)
pyautogui.click(1284, 916)
time.sleep(2)
pyautogui.click(655, 762)
time.sleep(3)
发布于 2019-12-08 10:41:13
您可以使用请求库检查用户名是否有效:
import requests
URL = "https://mail.protonmail.com/api/users/available"
PARAMS = {"Name": "UsernameToCheck"}
# idk what these are but it seems like they are needed
HEADERS = {"x-pm-appversion": "Web_3.16.17",
"x-pm-apiversion": "3"}
r = requests.get(url=URL, params=PARAMS, headers=HEADERS)
if int(r.json()["Code"]) == 1000:
print("valid username")
else:
print("invalid username")
https://stackoverflow.com/questions/58359775
复制相似问题