shop.py

#-*- coding:utf-8 -*-

# 导入单元测试
import unittest
# 导入工具类
from util import firefoxutil,urlutil

# 声明类 继承单元测试
class Shop(unittest.TestCase):


    # 实例化对象的方法
    @classmethod
    def setUpClass(self):

        # 实例化工具类
        self.firefox = firefoxutil.FireFox()
        # 实例化 url
        self.URL = urlutil.URL()

        pass

    # 打开浏览器
    def setUp(self):

        # 打开京东主页
        self.firefox.firefox_start(self.URL.JD_MAIN)

        pass

    # 关闭浏览器
    def tearDown(self):

        # 关闭浏览器
        self.firefox.firefox_close()

        pass

    # 购物的测试用例
    def test_shop(self):

        # 输入袜子
        self.firefox.SendkeysID("key",u"袜子")
        # 点击查找按钮
        self.firefox.ClickClass("button")

        # 使用js定位
        self.firefox.switch_to_view_js_Class("m-list")

        # 打印长度 获取的item列表
        # 理论上在这里我们应该链接数据库去查询列表,看看和页面的展示是不是一致,或者请求接口,看看接口返回的数据和页面是不是一直
        # 点击搜索按钮,需要加载网络,所以需要时间,可能会造成断言错误,所以我们需要使用强制休眠,给网络加载数据提供时间
        # 设置强制休眠
        # self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
        # # 进行断言数量
        # self.firefox.AssertEquilCount(self, "p-img", 52)


        # 面试题 :  动态元素如何进行定位?
        # 首先动态元素一般是列表类型,一般通过查询一组元素来返回一个列表,再通过列表的下标进行点击事件

        # 通过xpath获取第一个的内容
        ems = self.firefox.FindXpaths("//div[@class = 'gl-i-wrap']/div[4]/a/em")[0].text

        # 打印内容
        print ems

        # 查询一组元素,同时点击指定坐标
        self.firefox.ClickWindowClsses("p-img",0)

        # 使用断言
        # self.firefox.AssertEquilTitle(self,ems+u"【图片 价格 品牌 报价】-京东")

        # 进行定位 通过class
        self.firefox.switch_to_view_js_Class("crumb-wrap")

        # 通过 css,查找元素进行定位 点击加入购物车按钮
        self.firefox.ClickCss("a#InitCartUrl")

        # 进行断言
        self.firefox.AssertEquilTitle(self, u"商品已成功加入购物车")

        # 通过css点击 到购物车结算按钮
        self.firefox.ClickCss("a#GotoShoppingCart")

        # 进行断言
        self.firefox.AssertEquilTitle(self, u"我的购物车 - 京东商城")

        # 点击 去结算按钮 通过 css进行点击
        self.firefox.ClickCss("a.submit-btn")

        # 点击完成提交按钮以后,断言 frame是不是可见,如果可见,说明符合我们的预期,用例通过
        self.firefox.AssertTrueID(self,"dialogIframe")

        # 切换 frame 进行登陆
        self.firefox.seitch_to_id_frame("dialogIframe")

        # 输入用户名和密码
        # 点击账号切换
        self.firefox.ClickClass("login-tab-r")

        # 输入内容
        self.firefox.SendkeysID("loginname", "18010030176")
        self.firefox.SendkeysID("nloginpwd", "dong512@al")

        # 点击登陆
        self.firefox.ClickID("loginsubmit")

        # 没有断言的脚本是没有任何意义的
        # 设置休眠 使用强制等待 因为网络加载需要时间 休眠五秒
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 进行断言,确保进入订单页面
        self.firefox.AssertEquilTitle(self,u"订单结算页 -京东商城")

        # 提交订单 点击提交订单,将订单提交到服务器
        self.firefox.ClickClass("checkout-submit")

        # 点击我的订单 进行窗口的切换
        self.firefox.ClickLink_Window("我的订单")

        # 设置五秒休眠
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 查询一组取消订单 点击第一个需要取消的订单
        self.firefox.ClickLinks("取消订单",0)

        # 设置休眠时间
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 切换到frame里面
        self.firefox.seitch_to_id_frame("dialogIframe")

        # 查询一组,点击下标为5的
        self.firefox.ClickClasses("reasonBody",5)

        # 点击提交按钮
        self.firefox.ClickLink("提交")

        # 设置休眠
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 切出第一个frame,为切进入第二个frame做准备
        self.firefox.switch_to_content()

        # 切换 frame ,断言订单是不是取消成功
        self.firefox.seitch_to_id_frame("dialogIframe")

        # 获取内容进行断言
        self.message = self.firefox.FindXpath("//div[@class = 'cancel-progress']/h3").text

        # 进行断言
        self.assertEqual(self.message,u'取消申请已提交,系统正在审核')

        # 切换本地内容,去查找控件
        self.firefox.switch_to_content()

        # 点击 x按钮,将内容✘掉
        self.firefox.ClickClass("ui-dialog-close")

        # 设置休眠,休眠的原因我们需要断言更新以后的内容,为了网页刷新以后得到内容,而不是网页没有刷新就得到内容
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 查找以及取消按钮,进行断言 //相对路径 /绝对路径 从 html写起 通过 xpath方式查找
        # self.message = self.firefox.FindXpaths("//div[@class = 'status']/span")[0].text
        # 通过 link去查找 ,
        self.message = self.firefox.FindLinks("已取消")[0].text
        # 打印到自动化测试报告里面
        print self.message

        # 进行断言,设置状态为已经取消
        self.assertEqual(self.message,"已取消")






        pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值