ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自动化测试-数据驱动实践(126发邮件)

2019-06-03 09:52:14  阅读:253  来源: 互联网

标签:xpath 发邮件 126 self driver element iframe 自动化 find


测试需求:
自动登录126邮箱,选择收件人,输入主题,输入正文,上传附件,发送

代码:

#encoding=utf-8
import time
import unittest
from selenium import webdriver
from selenium.common.exceptions import TimeoutException

class login163MailByIe(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_login_sendMail(self):
        url = "http://mail.163.com"
        #设置页面加载限制时间为10秒
        self.driver.set_page_load_timeout(10)
        #窗口最大化
        self.driver.maximize_window()
        try:
            stime = time.time()
            #访问163首页
            self.driver.get(url)
        except TimeoutException,e:
            print u"页面加载超过设定时间,超时"
            #当页面加载时间超过设定时间,通过执行javascript来停止加载,然后继续执行后续动作
            self.driver.execute_script("window.stop()")
        end = time.time() - stime
        print end
        #点击切换成账号密码登录
        self.driver.find_element_by_xpath('//div[@id="lbNormal"]').click()
        #找到并切换进iframe控件
        # 目前126和163登录的iframe的id也是动态变化,所以不能用id定位iframe
        #使用各种xpath定位表达式,在浏览器中可以成功定位,但Pycharm中一直报错(NoSuchElementException),只成功过执行一次
        iframe = self.driver.find_element_by_xpath('//iframe[contains(@id,"x-URS-iframe")]')
        self.driver.switch_to.frame(iframe)

        #获取用户名输入框
        userName = self.driver.find_element_by_xpath("//input[@name='email']")
        userName.clear()
        userName.send_keys("xxx")
        #获取密码输入框
        pwd = self.driver.find_element_by_xpath("//input[@name='password']")
        #输入密码
        pwd.send_keys("xxx")
        #点击登录按钮
        self.driver.find_element_by_id("dologin").click()
        time.sleep(2)
        # 断言登录成功
        self.assertTrue(u"退出" in self.driver.page_source)
        #找到“写信”按钮
        writeBtn = self.driver.find_element_by_xpath('//span[text()="写 信"]')
        #点击“写信”按钮
        writeBtn.click()
        #找到收件人输入框
        recipient = self.driver.find_element_by_xpath('//input[@aria-label="收件人地址输入框,请输入邮件地址,多人时地址请以分号隔开"]')
        #输入收件人邮箱
        recipient.send_keys("124840093@qq.com")
        #找到主题输入框
        subject = self.driver.find_element_by_xpath('//input[contains(@id,"_subjectInput")]')
        #输入邮件主题
        subject.send_keys(u"测试发送邮件")
        #找到上传附件按钮
        fileBtn = self.driver.find_element_by_xpath('//input[@type="file"]')
        #选择目标文件
        fileBtn.send_keys("D:\\test\\test.txt")
        #正文富文本杠在一个iframe里面,先定位iframe,进入iframe后再定位富文本框
        #找到iframe并进入
        self.driver.switch_to.frame(self.driver.find_element_by_xpath('//iframe[@tabindex="1"]'))
        #找到富文本框并输入内容
        self.driver.execute_script("document.getElementsByTagName('body')[0].innerHTML='<b>邮件正文内容</b>;'")
        #进入iframe后,需要退出
        self.driver.switch_to.default_content()
        #找到发送按钮
        sendBtn = self.driver.find_element_by_xpath('//footer//span[text()="发送"]')
        #点击发送按钮
        sendBtn.click()
        time.sleep(5)
        #断言发送成功
        assert u"发送成功" in self.driver.page_source

    def tearDown(self):
        self.driver.quit()

if __name__ == "__main__":
    unittest.main()

 

标签:xpath,发邮件,126,self,driver,element,iframe,自动化,find
来源: https://www.cnblogs.com/test-chen/p/10965891.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有