UI自动化--商品批量加车脚本

目录:

1、条件控制语句
2、异常捕获
try:

except:

finally:
3、取Excel值做操作
4、判断元素是否存在的方法封装
5、完整ui自动化批量加车脚本(取Excel的值搜索商品并完成对应商品的加车)

一、条件控制语句

多个if做条件判断:
首先走color判断:弹出的加车中判断是否存在色块,存在即点击,不存在则跳过
无论color满不满足,都会走size判断:弹出的加车中判断是否存在尺码,存在即点击,不存在则跳过
无论前面color和size满不满足,都会走addcar判断:弹出的加车中判断是否存在加车按钮,存在即点击,不存在则跳过

if Color is True:
	time.sleep(1)
	driver.find_element_by_id("com.xx:id/color_view").click()
if Size is True:
	time.sleep(1)
	driver.find_element_by_id("com.xx:id/tv_text").click()
if AddCar is True:
	time.sleep(1)
	driver.find_element_by_id("com.xx:id/detail_buy").click()

请添加图片描述
关于if条件控制相关链接:https://www.runoob.com/python3/python3-conditional-statements.html

二、异常捕获

搜索一个商品,判断进入无结果页时,走else分支;有结果页时,走加车操作

    try:
        driver.find_element_by_id("com.xx:id/iv_empty")
   	except NoSuchElementException as E:
        print("走搜索有结果分支")
      	driver.find_element_by_id("com.xx:id/iv_car_add").click()
                time.sleep(1)
                xxxxxxxxx(加车相关操作)
    else:
        print("走搜索无结果分支的操作")
    finally:
    	print"此语句总被执行"

三、Excel取值操作

1、导入xlrd库:import xlrd
2、对Excel进行操作

# 对excel的操作
# 打开excle
     xlr = xlrd.open_workbook(r'C:\\Users\\10099999\\Desktop\\goodid.xlsx')
# 通过索引获取工作表
     table = xlr.sheets()[0]
# print(table)
# 总共多少行
     rows = table.nrows
     print('\n'"文件总行数%s" % rows)
# 获取单元格值,第i行第几列,索引从0开始
     data = table.cell(i, 0).value
            driver.find_element_by_id("com.xx:id/tv_searchbar_box").send_keys("%d"%data)

四、封装判断元素是否存在的方法

注意find_elements与find_element的区别,调用__len__()的方法返回容器中元素的个数,当>= 1此元素存在

# 判断元素是否存在 
def FindElement(self,element1):
    if self.driver.find_elements(element1).__len__() >= 1:
        return True
    else:
        return False

或者另一种判断方法:

    #元素判断
def FindElement(self, param1):
    try:
   		element1 = self.diver.find_element_by_id(param1)
    except NoSuchElementException as E:
        return False
    else:
        return True

五、完整ui自动化批量加车脚本

import time
import unittest
import xlrd
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.wait import WebDriverWait
from method.Serach_Icon import Search_Icon

class test_SearchAddCar(unittest.TestCase):

    def setUp(self):
        self.imgs = []
        self.addCleanup(self.cleanup)

    def add_img(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())  # 每次操作步骤截图
        return True

    def cleanup(self):
        pass

    def test_case1(self):
        driver = self.driver
        # 首页搜索icon封装方法
        Search_Icon(self)
        #手机太快,元素未定位到,启用等待
        WebDriverWait(driver,10).until(lambda x:x.find_element_by_id("com.xxx:id/tv_search_box").is_displayed())
        i = 10
        while i < 15:
            # 对excel的操作
            # 打开excle
            xlr = xlrd.open_workbook(r'C:\\Users\\100999999\\Desktop\\goodid.xlsx')
            # 通过索引获取工作表
            table = xlr.sheets()[0]
            # print(table)
            # 总共多少行
            rows = table.nrows
            print('\n'"文件总行数%s" % rows)
            # 获取单元格值,第几行第几列,索引从0开始
            data = table.cell(i, 0).value
            driver.find_element_by_id("com.xx:id/tv_search_box").send_keys("%d"%data)
            driver.find_element_by_id("com.xx:id/btn_search_search").click()
        #等待视图按钮出现
            WebDriverWait(driver,10).until(lambda x:x.find_element_by_id("com.xx:id/btn_search_list")).is_displayed()
        #断言
            time.sleep(1)
            result = driver.find_element_by_id('com.xx:id/tv_search_box').text
            self.assertEqual(result, "%d"%data, msg='用例失败')
            #判断
            try:
                driver.find_element_by_id("com.xx:id/iv_empty")
            except NoSuchElementException as E:
                print("走有结果分支")
                driver.find_element_by_id("com.xx:id/iv_car_add").click()
                time.sleep(1)
                # 元素判断
                #color
                if driver.find_elements_by_id("com.xx:id/color_view").__len__() >= 1:
                    time.sleep(1)
                    driver.find_element_by_id("com.xx:id/color_view").click()
                #size
                if driver.find_elements_by_id("com.xx:id/tv_text").__len__() >= 1:
                    time.sleep(1)
                    driver.find_element_by_id("com.xx:id/tv_text").click()
                #add car
                if driver.find_elements_by_id("com.xx:id/detail_buy").__len__() >= 1:
                    time.sleep(1)
                    driver.find_element_by_id("com.xx:id/detail_buy").click()
                    i += 1
            else:
                i+=1
            self.add_img()  # 添加截图操作
            # SearchAgain
            driver.find_element_by_id("com.xx:id/tv_search_box").click()
            time.sleep(2)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值