python+selenium 发送邮件

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[1])

    # 输入用户名、密码并登录
    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(3)
    # 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(10)
    run()

  

原文地址:https://www.cnblogs.com/a438842265/p/12309701.html

时间: 2024-08-01 20:29:08

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

python+selenium自动化环境配置及使用实例

一.搭建环境相关地址以及相关模块下载地址 1.#各个浏览器驱动下载地址: https://www.cnblogs.com/nancyzhu/p/8589764.html 2.#sublime+python+selenium自动化配置教程: http://python.tedu.cn/know/289803.html 3.#html测试报告: https://github.com/defnngj/HTMLTestRunner         http://www.testpub.cn/t/213

Python Selenium 文件上传(二)

今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传(一) 这种方法直接通过命令行执行脚本时没有问题,可以成功上传,但是如果通过saltstack 远程控制执行时,SendKeys就定位不到窗口了. 所以采用这种新的方式来实现文件上传功能,并完美的解决了这个问题. 具体操作步骤如下: 1.下载工具 AutoIt及使用 AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows

Python Selenium 文件上传(一)

昨天写了Web 文件下载的ui自动化,下载之后,今天就要写web 文件上传的功能了. 当然从折腾了俩小时才上传成功.下面写一下自己操作的步骤 首先网上说的有很多方法 如 input 标签的最好做了,直接定位到元素,然后再sendKeys("value")即可 <input id="file_name" class="text-1 w255" type="text" readonly="" value=

转 Python Selenium设计模式-POM

前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务.只需要定位到元素,执行对应的操作即可.下面我们看一下这个简单的脚本实现百度搜索. from selenium import webdriver import time driver = webdriver.Firefox() driver.i

Python+selenium自动化公共逻辑步骤封装

开篇 个人博客"Python+selenium的GUI自动化实现"提到的chrome与IE浏览器调用插件已上传至51CTO下载,对应链接分别为:chrome,http://down.51cto.com/data/2171584:IE,http://down.51cto.com/data/2171585:有需要的直接下载即可:  正文 关于自动化,其实质就是用机器操作代替手工执行,从而减少人力投入.节约项目运营成功.优秀的自动化框架,可能的一个发展过程,前期自动化用例写作实现过程,可能需

python selenium 元素定位(三)

上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到这个元素,我们从能对这个元素进行操作,那么我们下来看看如何来定位元素. selenium 提供了8中元素定位的方法(大家要学习元素的定位,首先可以学习下前端的基础知识,这样有利于我们学习自动化测试,大家可以看一下:http://www.runoob.com/) find_element_by_id

Python+selenium+autoIT组合 处理swfupload上传图片

Python+selenium不能直接处理swfupload图片上传的问题.需要借助鼠标模拟点击按钮,调用autoit生成的exe处理程序完成. 1,selenium 元素定位到上传按钮,模拟鼠标点击 upload_20=self.brow.find_element_by_css_selector("#SWFUpload_20") ActionChains(self.brow).click(upload_20).perform() 2,安装 autoit ,编写生成打开点击上传图片后的

Python+Selenium实现股票板块数据模拟抓取

selenium 是一个web的自动化测试工具,支持多平台:windows.linux.MAC ,支持多浏览器:ie.ff.safari.opera.chrome,支持多语言:例如C.JAVA.Python等,支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能. 虽然Selenium本来是应用于自动化测试领域,但是因为Selenium可以实现Web交互操作,所以可以利用Selenium模拟Web抓取一些常规方式不能抓取的数据,例如一些页面生成后才会动态加载的数

Python selenium的js扩展实现

python写的数据采集,对一般有规律的页面用 urllib2 + BeautifulSoup + 正则就可以搞定. 但是有些页面的内容是通过js生成,或者通过js跳转的,甚至js中还加入几道混淆机制:对这种涉及页面脚本解析的内容,前面的方式便很无力. 这时我们需要能解析.运行js的引擎——浏览器,而python selenium能提供程序与浏览器的交互接口,再加上phantomjs这个可以后台运行的浏览器,即使用 selenium + phantomjs 便可以解决以上的问题. seleniu