Selenium-Webdriver(python) (六) --- Unittest框架分析

# -*- coding: utf-8 -*- #为防止中文显示成乱码

'''Webdriver脚本'''

'''搜藏店铺,点击“逛逛” '''

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys importKeys

from selenium.webdriver.support.uiimport Select

from selenium.common.exceptionsimport NoSuchElementException

import unittest, time, re #import unittest想使用unittest框架,首先要引入unittest 

 

class 2w(unittest.TestCase):#2w类继承unittest.TestCase 类,从TestCase类继承是告诉unittest模块的方式,这是一个测试案例(2w是用例名)

   def setUp(self):#初始化,在测试用例执行前,这个方法中的函数将先被调用

        self.driver = webdriver.Firefox()

        self.driver.implicitly_wait(30)

        self.base_url = "http://mt.winguo.com"

        self.verificationErrors = []

        self.accept_next_alert = True

   

    def test_2w(self):#该函数/方法必须这样命名 定义一个测试用例,名字以test开头后接用例名  test_2w中放置的是我们的测试脚本(命名规则:test_用例名)

        driver = self.driver

        driver.get(self.base_url + "/")

        driver.find_element_by_css_selector("div.o2").click()

        driver.find_element_by_id("WG_UserNameTxt").clear()

        driver.find_element_by_id("WG_UserNameTxt").send_keys("lilinfang35")

        driver.find_element_by_id("WG_PassWordTxt").clear()

        driver.find_element_by_id("WG_PassWordTxt").send_keys("wsxedc@")

        driver.find_element_by_id("WG_submit").click()

        driver.find_element_by_link_text(u"收藏店铺").click()

        driver.find_element_by_link_text(u"逛逛").click()

           try: self.assertEqual(u"搜索", driver.find_element_by_css_selector("input.sub").get_attribute("value"))

        except AssertionError as e: self.verificationErrors.append(str(e))#调用assertEqual等断言方法判断程序执行结果和预期值是否相符

        driver.find_element_by_link_text(u"退出").click()

   

    def is_element_present(self, how, what):#查找页面元素是否存在,用处不大,通常删除。因为判断页面元素是否存在一般都加在testcase

        try: self.driver.find_element(by=how, value=what)

        except NoSuchElementException, e: return False

        return True

   

    def is_alert_present(self):

        try:self.driver.switch_to_alert()

        except NoAlertPresentException, e: return False

        return True

   

    def close_alert_and_get_its_text(self):#关闭警告和对得到文本框的处理       

        try:           

            alert = self.driver.switch_to_alert()

            alert_text = alert.text

            if self.accept_next_alert:

                alert.accept()

            else:

                alert.dismiss()

            return alert_text

        finally:self.accept_next_alert = True#是否继续接受下一个警告

   

    def tearDown(self):#在每个测试方法执行后调用,这个地方做所有清理工作,如退出浏览器等

        self.driver.quit()

        self.assertEqual([], self.verificationErrors)#脚本运行时,错误的信息将被打印到这个列表中

 

if __name__ == "__main__":

    unittest.main()#调用unittest.main()启动测试test开头的测试用例

 

注:

1.python内部自带了一个单元测试的模块:unittest(Python单元测试框架-pyUnit

2.我们所使用的方法大多数被封装在D:\Python27\Lib\site-packages\selenium\webdriver\remote下面的webdriver.py

 

 点击查看更多.........安静 

 点击查看更多.........安静 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值