0
点赞
收藏
分享

微信扫一扫

web端自动化测试--淘宝

开源分享 2022-04-29 阅读 90

PO封装

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #鼠标操作
class BasePage():
    '''BasePage封装所有界面都公用的方法。例如driver,find_element等'''
    '''实例化BasePage类时,事先执行的__init__方法,该方法需要传递参数'''
    def __init__(self,driver):
        self.driver = driver
    # 进入网址
    def get(self,url):
        self.driver.get(url)
    # 元素定位,替代八大定位
    def get_element(self, *locator):
        return self.driver.find_element(*locator)
    # 点击
    def left_click(self, *locator):
        ActionChains(self.driver).click(self.get_element(*locator)).perform()
    # 输入
    def send_text(self, text, *locator):
        self.driver.find_element(*locator).send_keys(text)
    # 清除
    def clear_text(self, *locator):
        self.driver.find_element(*locator).clear()
    # 表单切换
    def switch_iframe(self, *locator):
        self.driver.switch_to.frame(self.driver.find_element(*locator))
    # 窗口切换
    def switch_window(self, n):
        self.driver.switch_to.window(self.driver.window_handles[n])

在这里插入图片描述
第一个页面

from basedemo.basePage import BasePage
from selenium.webdriver.common.by import By
class OneTest(BasePage):
    # 初始化属性
    def __init__(self, driver):
        BasePage.__init__(self,driver)

    # 打开百度
    def open_baidu(self,url):
        self.get(url)

    # 输入淘宝
    def send_taobao(self,text):
        self.send_text(text,By.ID,"kw")

    # 点击百度一下
    def click_bdyx(self):
        self.left_click(By.ID,"su")

    # 点击淘宝链接
    def click_tblj(self):
        self.left_click(By.XPATH,'//*[text()="淘宝网"]')

    # 切换窗口
    def qiehuan_window(self,n):
        self.switch_window(n)

在这里插入图片描述
第二个界面

from basedemo.basePage import BasePage
from selenium.webdriver.common.by import By
class TwoTest(BasePage):
    # 初始化属性
    def __init__(self, driver):
        BasePage.__init__(self,driver)

    # 点击登录
    def taobao_denglu(self):
        self.left_click(By.XPATH,"//*[text()='亲,请登录']")

    # 二维码登录
    def erwm_denglu(self):
        self.left_click(By.CSS_SELECTOR,'.icon-qrcode')

    # 清空输入框数据
    def clear_text1(self):
        self.clear_text(By.ID,'q')

    # 输入要买的商品
    def send_shop(self,text):
        self.send_text(text,By.ID,'q')

    # 点击搜索
    def search(self):
        self.left_click(By.CSS_SELECTOR,'.btn-search')

    # 筛选条件 风格为卡通
    def choose_katong(self):
        self.left_click(By.XPATH,'//*[@id="J_NavCommonRowItems_1"]/a[3]/span[2]')

    # 勾选包邮
    def choose_baoyou(self):
        self.left_click(By.XPATH,'//*[text()="包邮"]')

    # 筛选价位
    def choose_money(self):
        self.left_click(By.XPATH,'//*[@id="J_relative"]/div[1]/div/div[1]/div[2]/div/a[2]/span[2]')

    # # 选择发货地
    # def choose_address(self):
    #     self.left_click(By.CSS_SELECTOR,"div.location:nth-child(5) > div:nth-child(1) > div:nth-child(1) > span:nth-child(1)")
    #
    # def choose_addr2(self):
    #     self.left_click(By.CSS_SELECTOR,"div.section:nth-child(2) > ul:nth-child(1) > li:nth-child(9) > a:nth-child(1)")

    # 点击选择商品
    def click_shangpin(self):
        self.left_click(By.CSS_SELECTOR,"#J_Itemlist_Pic_667778874458")

    # 窗口切换
    def switch_window2(self,n):
        self.switch_window(n)

在这里插入图片描述
第三个页面

from basedemo.basePage import BasePage
from selenium.webdriver.common.by import By
class ThreeTest(BasePage):
    # 初始化属性
    def __init__(self, driver):
        BasePage.__init__(self,driver)

    # 选择米白底粉小花
    def click_style(self):
        self.left_click(By.XPATH, '//*[text()="米白底粉小花"]')

    # 选择iphone12
    def click_iphone12(self):
        self.left_click(By.XPATH, '//*[text()="iphone12"]')

    # 加入购物车
    def add_car(self):
        self.left_click(By.XPATH, '//*[@id="J_juValid"]/div[2]/a')

    # 点击购物车并进入
    def click_car(self):
        self.left_click(By.XPATH, '//*[@id="J_ResultSummary"]/div[4]/a[2]')

在这里插入图片描述
生成测试报告(HTML)

from testdemo.testDemo import TestTaoBaoDemo
from common.HTMLTestRunner import HTMLTestRunner
import unittest
class HtmlClass():
    def htmlmethod(self):
        suite = unittest.TestSuite()  # 创建测试套件
        list_testlist = ["test001","test002","test003"]
        for i in list_testlist:
            suite.addTest(TestTaoBaoDemo(i))   #将测试用例添加到测试套件中
        # runner = unittest.TextTestRunner(verbosity=2)
        # runner.run(suite)
        with open("../taobao.html", "wb") as f:
            HTMLTestRunner(
                stream=f,
                title="淘宝单元测试",
                description="测试一期",
                verbosity=2
            ).run(suite)
h = HtmlClass()
h.htmlmethod()

在这里插入图片描述
html页面
在这里插入图片描述

举报

相关推荐

0 条评论