import time
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.common.keys import Keys
from getpass import getpass def run():
driver.get(url='https://mail.qq.com/')
# 遇到iframe,需要切换
iframe_list = driver.find_elements_by_tag_name('iframe')
# print(iframe_list)
driver.switch_to.frame(iframe_list[]) # 输入用户名、密码并登录
driver.find_element_by_class_name('inputstyle').send_keys(user)
driver.find_element_by_class_name('password').send_keys(pwd)
driver.find_element_by_class_name('password').send_keys(Keys.ENTER)
# 点击写信
driver.find_element_by_id('composebtn').click()
iframe = driver.find_element_by_id('mainFrame')
driver.switch_to.frame(iframe)
# 输入收件人、主题信息
driver.find_element_by_xpath('//*[@id="toAreaCtrl"]/div[2]/input').send_keys(to)
driver.find_element_by_xpath('//*[@id="subject"]').send_keys(theme) # 遇到body iframe
iframe_body = driver.find_element_by_class_name('qmEditorIfrmEditArea')
driver.switch_to.frame(iframe_body)
# 输入文本
driver.find_element_by_tag_name('body').send_keys(content)
# 切出body iframe
driver.switch_to.default_content()
driver.switch_to.frame(iframe)
# 点击发送按钮
driver.find_element_by_xpath('//*[@id="toolbar"]/div/a[1]').click()
# time.sleep()
# driver.quit() if __name__ == '__main__':
to = '' # 你想发的邮箱
theme = 'python自动发送邮件'
content = '不用回,我就试试,哈哈哈。'
user = '' # QQ账号
pwd = getpass('密码:') # QQ密码 # 创建 option 对象
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
# 创建浏览器对象
driver = webdriver.Chrome(options=option)
  '''
  driver = webdriver.Chrome(executable_path=r'E:\chromedriver.exe')
  '''
driver.implicitly_wait()
run()

python+selenium 发送邮件的更多相关文章

  1. python+selenium 自动化测试实战

    一.前言: 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习.(注:项目是针对我们公司内部系统的测试,只能内部网络访问, ...

  2. web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架

    基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  3. python+selenium封装UI自动化框架

    seleinum框架 框架的思想:  解决我们测试过程中的问题:大量的重复步骤,用自动化来实现    1)配置和程序的分离    2)测试数据和程序的分离    3)不懂编程的人员可以方便使用:使用的 ...

  4. python+selenium 浏览器的问题

    以前用selenium调用firefox是不需要驱动的,最近安装了python3.52+最新的firefox 发现调不起来了 搜索以后发现Firefox 47+需要搞个firefox的驱动 gecko ...

  5. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  6. Python + Selenium 实现登录Office 365

    最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解 ...

  7. python+selenium+Robot

    准备工作: 1.下载python2.7 http://python.org/getit/ 2.下载下载setuptools [python 的基础包工具] 可以帮助我们轻松的下载,构建,安装,升级,卸 ...

  8. python+selenium运行报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

    使用python+selenium运行自动化脚本时,打印某一段文字出现UnicodeEncodeError: 'ascii' codec can't encode characters in posi ...

  9. Functional testing - python, selenium and django

    Functional testing  - python selenium django - Source Code : from selenium import webdriverfrom sele ...

随机推荐

  1. P1001 A+B Format

    转跳点:

  2. centos8 安装mysql 8.0

    本文参照:https://blog.csdn.net/qq_43232506/article/details/102816659 •  安装mysql及依赖 dnf install @mysql • ...

  3. Linux centos7日常运维——监控io性能、free内存命令、ps进程命令、查看网络状态、linux下抓包

    一.监控io性能 Linux系统出现了性能问题,一般我们可以通过top.iostat.free.vmstat等命令来查看初步定位问题.其中iostat可以给我们提供丰富的IO状态数据. iostat ...

  4. 使用Linux命令修改数据库密码

    通过登录mysql系统,# mysql -uroot -pEnter password: [输入原来的密码]mysql>use mysql;mysql> update user set p ...

  5. 3(计算机网络)ifconfig:最熟悉又陌生的命令行

    当面试听到这个问题的时候,面试者常常会觉得走错了房间.我面试的是技术岗位啊,怎么问这么简单的问题? 的确,即便没有专业学过计算机的人,只要倒腾过电脑,重装过系统,大多也会知道这个问题的答案:在 Win ...

  6. Java泛型与数组深入研究

    Java中的泛型与数组平时开发用的很多,除了偶尔遇到"NullPointerException"和"IndexOutOfBoundsException"一般也不 ...

  7. String和Date 互相转换

    1.String ->Date String StrDate = "2012-12-12"; SimpleDateFormat sdf=new SimpleDateForma ...

  8. sass计算高度

    页面布局时,有时候需要两个div充满父div空间,设定一个div尺寸后,可以使用css计算高度设置另一个尺寸: <style> .wrap{ width:1000px; } .left{ ...

  9. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:final关键字

    final class A{ // 使用final定义类,不能有子类 }; class B extends A{ // 错误,不能被继承 }; class A{ public final void p ...

  10. winodws系统搭建git服务--Tomcat--jdk配置

    一.http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html  下载jdk程序: 1.下载 ...