ddt 测试用例UI运用

import xlrd
from selenium import webdriver
import ddt
import time
import unittest

class Excel(object):

    def __init__(self,excel_path,sheet_name):
        self.excel_file=xlrd.open_workbook(excel_path)
        self.sheet =self.excel_file.sheet_by_name(sheet_name)
        self.sheet_name =self.sheet.name
        self.rows = self.sheet.nrows
        self.cols = self.sheet.ncols

    """返回单元格,计数(0,0)表示第一行,第一列的单元格"""
    def get_sheet_data(self,row,col):
            test_data = self.sheet.cell(row ,col).value

    """读取excel,并处理数据返回"""
    def read_excel(self):
            list=[]
            for row in range(2,self.rows):
                lists=self.sheet.row_values(row)[:self.cols]
                list1=[]
                dict={}
                for j in range(self.cols):

                    list1.append(lists[j].encode('utf-8'))

                dict['order_currency']=list1[0].decode('utf-8')
                dict['order_amount']=list1[1].decode('utf-8')
                dict['DFSXml']=list1[2].decode('utf-8')
                dict['card_number']=list1[3].decode('utf-8')
                dict['secureCode']=list1[4].decode('utf-8')
                list.append(dict)
            return  list


class Base(object):
    def __init__(self,driver):
        self.driver = driver
    def by_xpath(self,xpath):
        return self.driver.find_element_by_xpath(xpath)

    def by_id(self,id):
        return self.driver.find_element_by_id(id)

    def inputText(self,ele,text):
        ele.clear()
        ele.send_keys(text)

    def getTitle(self):
        return self.driver.current_url


def run(browser,secureCode,order_currency,order_amount,card_number,DFSXml):
    browser.get("https://dfs.oceanpayment.com/pages/testPay.html")
    page = Base(browser)
    page.inputText(page.by_id("secureCode"), secureCode)
    page.inputText(page.by_id("order_currency"),order_currency)
    page.inputText(page.by_id("order_amount"), order_amount)
    js_bom = "document.documentElement.scrollTop=500"
    browser.execute_script(js_bom)
    page.inputText(page.by_id("order_number"),card_number)
    jsToTop ="document.documentElement.scrollTop=-500"
    browser.execute_script(jsToTop)
    page.inputText(page.by_id("DFSXml"),DFSXml)
    page.by_id("btnAdd").click()
    alert = browser.switch_to_alert()
    alert.accept()
    time.sleep(5)
    print(page.getTitle())

@ddt.ddt
class TestRun(unittest.TestCase):

    path=r"E://Card.xlsx" #windows 保存excel文件的路径,需要更改根据存放位置
    st_name='Diners' # excel sheet 名称不变不改
    test_data= Excel(path,st_name).read_excel()
    def setUp(self):
          opt= webdriver.ChromeOptions()
          opt.add_argument('--start-maximized')
          driver=webdriver.Chrome(options=opt)
          driver.implicitly_wait(10)
          self.driver=driver
    def tearDown(self):
        self.driver.close()
    @ddt.data(*test_data)
    def test_pay(self,dict):
        run(self.driver,dict["secureCode"],dict["order_currency"],dict["order_amount"],dict["card_number"],dict['DFSXml'])


if __name__ == '__main__':
    unittest.main()

  

 

转载于:https://www.cnblogs.com/SunshineKimi/p/10631154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值