项目介绍
编写一个程序,通过命令行接受电子邮件地址和文本字符串。然后利用selenium
登录到你的邮件账号,将该字符串作为邮件,发送到提供的地址(你也许希望为这
个程序建立一个独立的邮件账号)。
代码块
#! /usr/bin/env python3
# senEmail.py - 利用命令行发送字符串到指定邮箱地址
import sys, time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://mail.163.com')
time.sleep(1)
browser.switch_to.frame('x-URS-iframe') # 定位到iframe元素
email_elem = browser.find_element_by_name('email') # 查找email账号和密码关联的元素
password_elem = browser.find_element_by_name('password')
email_elem.send_keys('not_my_real_email') # 调用send_keys()方法填写表单
password_elem.send_keys('123456')
login_elem = browser.find_element_by_id('dologin') # 查找登录按钮关联元素,并模拟鼠标点击登录
login_elem.click()
time.sleep(1) # 让程序等待1秒,待页面加载完成
write_elem = browser.find_element_by_xpath('/html/body/div/nav/div/ul/li[2]') # 查找"写信"选项关联的元素并模拟鼠标点击
write_elem.click()
time.sleep(1)
# 查找"收件人"选项关联的元素
recipient_elem = browser.find_element_by_xpath('//div[contains(@id,"_mail_emailinput")]/input')
recipient_elem.send_keys(sys.argv[1]) # 将命令行中的收件人字符串输入到当前表单中
frame_elem = browser.find_element_by_xpath('//iframe[@class="APP-editor-iframe"]')
browser.switch_to.frame(frame_elem) # 定位到新的iframe元素
content_elem = browser.find_element_by_xpath('/html/body')
content_elem.send_keys(sys.argv[2]) # 将命令行中的文本字符串输入到内容表单中
browser.switch_to.default_content() # 重新返回主文档
send_elem = browser.find_element_by_xpath('//div[contains(@id,"_mail_button_2")]') # 查找"发送"按钮的关联元素,并模拟鼠标点击发送
send_elem.click()
browser.find_element_by_xpath('//div[contains(@id,"_mail_button_11")]').click() # 鼠标模拟点击确认不填写主题按钮
time.sleep(1)
browser.close() # 退出浏览器