首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用(Python,Selenium)在ProtonMail上自动创建电子邮件

使用(Python,Selenium)在ProtonMail上自动创建电子邮件
EN

Stack Overflow用户
提问于 2019-10-13 00:56:12
回答 2查看 3.6K关注 0票数 0

我想在ProtonMail上创建10封电子邮件。

我已经使用PyAutoGuiSelenium实现了半个部件的自动化,但是我想让它像一个检查器一样,因为有时候用户名会被取走。现在我想做的是:

Usernames

  • Check either by Selenium or another package(suggestions if you know any)

  • If用户名是有效的,将创建一个记事本来保存有效的用户名。

这就是我现在想要建立的概念。我真的很抱歉,如果我听起来是垃圾,但我合法地开始使用Python几天前,它还不到一个星期,所以.我正在学习:P

我已经自动化了Selenium填写ProtonMail表单以便注册/注册的部分,但有时我会收到用户名已经被接受的错误,我希望脚本检查该错误消息是否弹出,如果弹出,将执行一个“保留代码”行来解决这个问题。然后,代码可以继续。但是,如果元素不弹出,我希望脚本不干扰“保留代码”。

如果有人来这里只是为了准备代码,那么您可以这样做:

代码语言:javascript
运行
复制
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)
EN

Stack Overflow用户

发布于 2019-12-08 10:41:13

您可以使用请求库检查用户名是否有效:

代码语言:javascript
运行
复制
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")
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58359775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档