python3+selenium实现126邮箱登陆并发送邮件功能

yipeiwu_com5年前Python基础

本文实例为大家分享了python3实现126邮箱登陆并发送邮件的具体代码,供大家参考,具体内容如下

基于selenium,使用chrome浏览器,完成126邮箱登陆并发送发邮件功能,暂时未封装。

from selenium import webdriver
# 导入显示等待类
from selenium.webdriver.support.ui import WebDriverWait
# 导入期望场景类
from selenium.webdriver.support import expected_conditions as EC
# 导入By类
from selenium.webdriver.common.by import By
import time
 
#浏览器驱动放在了c:\\Python36\\Scripts目录下,无需指定参数
driver= webdriver.Chrome()
driver.get("https://mail.126.com/")
time.sleep(3)
####登陆
driver.switch_to.frame("x-URS-iframe")
user_name = driver.find_element_by_xpath('//*[@name="email"]')
#将xxxxxxx替换为自己的用户名
user_name.send_keys('xxxxxxx')
pass_word = driver.find_element_by_xpath('//*[@name="password"]')
#将11111111111替换为自己的密码
pass_word.send_keys('11111111111')
button = driver.find_element_by_id("dologin")
button.click()
driver.switch_to.default_content()
time.sleep(3)
 
####写邮件
wait = WebDriverWait(driver,10,0.2)
##wait.until(EC.visibility_of_element_located((By.XPATH,"//span[text()='发送']")))
wait.until(EC.visibility_of_element_located((By.XPATH,"//a[contains(text(),'退出')]")))
driver.find_element_by_xpath('//span[text()="写 信"]').click()
driver.find_element_by_xpath('//input[@tabindex="1" and @role="combobox"]').\
                          send_keys("1234h@qq.com")
driver.find_element_by_xpath('//input[@tabindex="1" and @class="nui-ipt-input"]').\
                          send_keys("测试邮件")
driver.find_element_by_xpath('//input[@type="file"]').send_keys("f:\\b.txt")
time.sleep(5)
 
wait.until(EC.visibility_of_element_located((By.XPATH,"//span[text()='上传完成']")))
driver.switch_to.frame(driver.find_element_by_xpath('//iframe[@tabindex=1]'))
driver.execute_script("document.getElementsByTagName('body')[0].innerHTML='<b>邮件的正文内容<b>;'")
driver.switch_to.default_content()
 
##发送
driver.find_element_by_xpath('//span[text()="发送"]').click()
time.sleep(5)
assert '发送成功' in driver.page_source
logout_link=driver.find_element_by_xpath("//a[text()='退出']")
time.sleep(3)
assert u"登录" in driver.page_source
 
driver.quit()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python字符串切片操作知识详解

一:取字符串中第几个字符 print "Hello"[0] 表示输出字符串中第一个字符 print "Hello"[-1] 表示输出字符串中最后一个字符 二:字符串分割 print...

Python文件去除注释的方法

本文实例讲述了Python文件去除注释的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python # -*- coding: GBK -*- #writ...

Python实现获取网站PR及百度权重

Python实现获取网站PR及百度权重

上一次我用requests库写的一个抓取页面中链接的简单代码,延伸一下,我们还可以利用它来获取我们网站的PR以及百度权重。原理差不多。最后我们甚至可以写一个循环批量查询网站的相关信息。...

详解pandas中MultiIndex和对象实际索引不一致问题

在最新版的pandas中(不知道之前的版本有没有这个问题),当我们对具有多层次索引的对象做切片或者通过df[bool_list]的方式索引的时候,得到的新的对象尽管实际索引已经发生了改变...

django2 快速安装指南分享

1. 安装 作为一个 Python Web 框架,Django需要Python的支持。请参阅 我可以在Django中使用哪些Python版本?了解详情。Python包含一个名为SQLit...