shopcheckedbox.py

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

# 导入单元测试
import unittest

from util import firefoxutil,urlutil

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


    @classmethod
    def setUpClass(self):

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

        pass


    def setUp(self):

        # 打开浏览器
        self.firefox.firefox_start(self.URL.JD_SHOP_CAR)

        pass

    def tearDown(self):

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

        pass

    # 登陆的方法
    def shop_login(self):

        # 点击登录按钮,登录进去
        # 点击登陆按钮
        self.firefox.ClickLink("登录")

        # 设置休眠,以为有frame 需要弹出,所以需要时间让他弹出 设置五秒休眠
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

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

        # 点击账号登陆
        self.firefox.ClickClass("login-tab-r")

        # 输入用户名 密码 以及点击登陆按钮
        self.firefox.SendkeysID("loginname", "13193571088")
        self.firefox.SendkeysID("nloginpwd", "123123.")

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

        # 设置休眠,因为登录需要反应时间
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        pass

    def test_checkbox_four_one(self):

        # 调用登陆的方法
        self.shop_login()

        # 测试用例如下,因为上面和下面都有全部选择按钮,首先我们点击上面全选按钮
        # 接下来判断下面的五件商品有没有全部选中,如果全部选中了,我们将第一件选择为不选中
        # 如果没有全部选中,那我们就将后面的四个选中,第一个不选中
        # 如果有几个是选中的,有几个是未选中的,我们就将第一个不选中,后面的几个选中

        # 点击全部选中按钮
        self.firefox.ClickClass("jdcheckbox")

        # 查询五个checkbox是不是全部选中
        self.checkItems = self.firefox.FindNames("checkItem")

        # 使用 for循环取判断
        for index in range(0,len(self.checkItems)):

            # 如果 index 为0,如果是选中状态我们就改变成不选中,其他的如果是不选中状态我们就改变成选中状态
            if index == 0 :

                if self.checkItems[index].get_attribute("checked") == "true":

                    # 点击一下,设置为不选中
                    self.checkItems[index].click()
                    # 设置休眠,因为选中以后,需要服务器提交数据,需要时间刷新浏览器
                    self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)

            else:

                if self.checkItems[index].get_attribute("checked") != "true":

                    # 点击一下,设置为不选中
                    self.checkItems[index].click()
                    # 设置休眠,因为选中以后,需要服务器提交数据,需要时间刷新浏览器
                    self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)

        # 我们再次重新查找控件,判断是不是第一个是未选中的,后面四个是选中的

        # 查询五个checkbox是不是全部选中 因为数据发生了改变,所以我们必须重新查找
        self.checkItems = self.firefox.FindNames("checkItem")

        # 使用 for循环 和断言来判断是不是符合我们的预期
        for index in range(0,len(self.checkItems)):

            if index == 0:

                # 断言 获取的属性值是不是为空
                self.assertEqual(self.checkItems[index].get_attribute("checked"),None)

            else:

                # 断言 是不是为true,因为我们选中返回的是true
                isSelect = self.checkItems[index].get_attribute("checked")

                self.assertTrue(isSelect)

        # 通过 class 查询一组全部选择控件
        self.jdcheckboxs = self.firefox.FindNames("toggle-checkboxes")

        # 使用 for循环
        for index in range(0,len(self.jdcheckboxs)):

            print index
            # 加入休眠
            self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
            # 获取属性,进行断言,判断是不是选中
            self.assertEqual(self.jdcheckboxs[index].get_attribute("checked"), None)


    # 验证复选框的全部选中有没有效果
    def test_select_all(self):

        # 调用登陆的方法
        self.shop_login()

        # 验证全部选中
        # 但是默认的购物车里面有选项框有两种情况的存在
        # 一种是全部被选中 或者全部不被选中 或者有一部分选中一部分没有选中
        # 但是我们要的效果是全部选中

        # 查找购物车里面的复选框,无论多少个,通过列表返回
        self.checkItems = self.firefox.FindNames("checkItem")

        # for 循环
        for item in self.checkItems:

            # 获取属性,进行判断
            if item.get_attribute("checked") != "true":

                # 点击一下
                item.click()
                # 设置休眠的原因是因为网络加载需要时间
                self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)


        # 进行断言
        # 查找全部选中按钮,看看有没有别选中
        self.toggle_checkboxes = self.firefox.FindNames("toggle-checkboxes")

        # 使用 fox循环 进行断言
        for index in self.toggle_checkboxes:

            # 断言
            self.assertEqual(index.get_attribute("checked"),"true")


    # # 验证反选功能不能使用
    # def test_select_reverse(self):
    #
    #     # 调用登陆
    #     self.shop_login()
    #
    #     # 得到输入框状态
    #
    #     pass


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值