#-*- coding:utf-8 -*-
# 导入单元测试
import unittest
import unittest
from util import firefoxutil,urlutil
# 声明类继承单元测试
class ShopCheckbox(unittest.TestCase):
class ShopCheckbox(unittest.TestCase):
@classmethod
def setUpClass(self):
# 实例化工具类
self.firefox = firefoxutil.FireFox()
self.URL = urlutil.URL()
self.firefox = firefoxutil.FireFox()
self.URL = urlutil.URL()
pass
def setUp(self):
# 打开浏览器
self.firefox.firefox_start(self.URL.JD_SHOP_CAR)
self.firefox.firefox_start(self.URL.JD_SHOP_CAR)
pass
def tearDown(self):
# 关闭浏览器
self.firefox.firefox_close()
self.firefox.firefox_close()
pass
# 登陆的方法
def shop_login(self):
def shop_login(self):
# 点击登录按钮,登录进去
# 点击登陆按钮
self.firefox.ClickLink("登录")
# 点击登陆按钮
self.firefox.ClickLink("登录")
# 设置休眠,以为有frame 需要弹出,所以需要时间让他弹出 设置五秒休眠
self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
# 切换到frame
self.firefox.seitch_to_id_frame("dialogIframe")
self.firefox.seitch_to_id_frame("dialogIframe")
# 点击账号登陆
self.firefox.ClickClass("login-tab-r")
self.firefox.ClickClass("login-tab-r")
# 输入用户名 密码 以及点击登陆按钮
self.firefox.SendkeysID("loginname", "13193571088")
self.firefox.SendkeysID("nloginpwd", "123123.")
self.firefox.SendkeysID("loginname", "13193571088")
self.firefox.SendkeysID("nloginpwd", "123123.")
# 点击登陆
self.firefox.ClickID("loginsubmit")
self.firefox.ClickID("loginsubmit")
# 设置休眠,因为登录需要反应时间
self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
pass
def test_checkbox_four_one(self):
# 调用登陆的方法
self.shop_login()
self.shop_login()
# 测试用例如下,因为上面和下面都有全部选择按钮,首先我们点击上面全选按钮
# 接下来判断下面的五件商品有没有全部选中,如果全部选中了,我们将第一件选择为不选中
# 如果没有全部选中,那我们就将后面的四个选中,第一个不选中
# 如果有几个是选中的,有几个是未选中的,我们就将第一个不选中,后面的几个选中
# 接下来判断下面的五件商品有没有全部选中,如果全部选中了,我们将第一件选择为不选中
# 如果没有全部选中,那我们就将后面的四个选中,第一个不选中
# 如果有几个是选中的,有几个是未选中的,我们就将第一个不选中,后面的几个选中
# 点击全部选中按钮
self.firefox.ClickClass("jdcheckbox")
self.firefox.ClickClass("jdcheckbox")
# 查询五个checkbox是不是全部选中
self.checkItems = self.firefox.FindNames("checkItem")
self.checkItems = self.firefox.FindNames("checkItem")
# 使用 for循环取判断
for index in range(0,len(self.checkItems)):
for index in range(0,len(self.checkItems)):
# 如果 index 为0,如果是选中状态我们就改变成不选中,其他的如果是不选中状态我们就改变成选中状态
if index == 0 :
if index == 0 :
if self.checkItems[index].get_attribute("checked") == "true":
# 点击一下,设置为不选中
self.checkItems[index].click()
# 设置休眠,因为选中以后,需要服务器提交数据,需要时间刷新浏览器
self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
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)
self.checkItems[index].click()
# 设置休眠,因为选中以后,需要服务器提交数据,需要时间刷新浏览器
self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
# 我们再次重新查找控件,判断是不是第一个是未选中的,后面四个是选中的
# 查询五个checkbox是不是全部选中 因为数据发生了改变,所以我们必须重新查找
self.checkItems = self.firefox.FindNames("checkItem")
self.checkItems = self.firefox.FindNames("checkItem")
# 使用 for循环 和断言来判断是不是符合我们的预期
for index in range(0,len(self.checkItems)):
for index in range(0,len(self.checkItems)):
if index == 0:
# 断言 获取的属性值是不是为空
self.assertEqual(self.checkItems[index].get_attribute("checked"),None)
self.assertEqual(self.checkItems[index].get_attribute("checked"),None)
else:
# 断言 是不是为true,因为我们选中返回的是true
isSelect = self.checkItems[index].get_attribute("checked")
isSelect = self.checkItems[index].get_attribute("checked")
self.assertTrue(isSelect)
# 通过 class 查询一组全部选择控件
self.jdcheckboxs = self.firefox.FindNames("toggle-checkboxes")
self.jdcheckboxs = self.firefox.FindNames("toggle-checkboxes")
# 使用 for循环
for index in range(0,len(self.jdcheckboxs)):
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)
# 加入休眠
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.shop_login()
# 验证全部选中
# 但是默认的购物车里面有选项框有两种情况的存在
# 一种是全部被选中 或者全部不被选中 或者有一部分选中一部分没有选中
# 但是我们要的效果是全部选中
# 但是默认的购物车里面有选项框有两种情况的存在
# 一种是全部被选中 或者全部不被选中 或者有一部分选中一部分没有选中
# 但是我们要的效果是全部选中
# 查找购物车里面的复选框,无论多少个,通过列表返回
self.checkItems = self.firefox.FindNames("checkItem")
self.checkItems = self.firefox.FindNames("checkItem")
# for 循环
for item in self.checkItems:
for item in self.checkItems:
# 获取属性,进行判断
if item.get_attribute("checked") != "true":
if item.get_attribute("checked") != "true":
# 点击一下
item.click()
# 设置休眠的原因是因为网络加载需要时间
self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
item.click()
# 设置休眠的原因是因为网络加载需要时间
self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
# 进行断言
# 查找全部选中按钮,看看有没有别选中
self.toggle_checkboxes = self.firefox.FindNames("toggle-checkboxes")
# 使用 fox循环 进行断言
for index in self.toggle_checkboxes:
for index in self.toggle_checkboxes:
# 断言
self.assertEqual(index.get_attribute("checked"),"true")
self.assertEqual(index.get_attribute("checked"),"true")
# # 验证反选功能不能使用
# def test_select_reverse(self):
#
# # 调用登陆
# self.shop_login()
#
# # 得到输入框状态
#
# pass