5、页面操作
pay_page.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-04-15 09:00:00
# @Author : Canon
# @Link : https://www.python.org
# @Version : 3.6.1
import datetime
from common import basepage
from common import xml_utils
from common.conf_utils import Gateway
# 当前年份的下一年
YEAR = str(datetime.datetime.now().year + 1)
# 当前月份
MONTH = '0{0}'.format(datetime.datetime.now().month)
# 格式: 月/年 "0119"
MON_YEAR = MONTH + YEAR[2:]
# 读取 xml 文件
xml_obj = xml_utils.XmlUtils(Gateway().read_path("xml", "pay"))
class Pay(basepage.Action):
"""
测试页面
"""
def __init__(self, selenium_driver):
super().__init__(selenium_driver)
dict_val = xml_obj.get_attr_by_tag('pageName', 'paypage', 'locator')
# ----- 定位器,通过元素属性定位元素对象 ----- #
# CardNumber
self.num = dict_val['CardNumber']
# "月份" 下拉框
self.mon = dict_val['ComboboxMonth']
# "年份" 下拉框
self.year = dict_val['ComboboxYear']
# SecureCode
self.code = dict_val['SecureCode']
# "PAY_NOW" 按钮
self.pay = dict_val['PayNow']
# ----- 页面操作 ----- #
def loc_frame(self):
self.switch_frame("iframe", 1)
def input_card_number(self, card_number):
# 输入 CardNumber
self.send_keys(self.num, card_number)
def select_card_month(self):
# 选择 "月份" 下拉框
self.select_combobox(self.mon, MONTH)
def select_card_year(self):
# 选择 "年份" 下拉框
self.select_combobox(self.year, YEAR)
def input_secure_code(self, secure_code):
# 输入 SecureCode
self.send_keys(self.code, secure_code)
def click_pay_now(self):
# 点击 "PAY_NOW" 按钮
self.click_button(self.pay)
pay.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-04-15 09:00:00
# @Author : Canon
# @Link : https://www.python.org
# @Version : 3.6.1
import pageobj.gateway.pay_page as Pay
from common.logger import Log
class PayAction(object):
def __init__(self, driver):
self.driver = driver
self.log = Log()
def put_pay(self, test_data):
# 提交支付
pay_page = Pay.Pay(self.driver)
self.log.info("----- 页面链接: %s -----" % self.driver.current_url)
if '/web/vpay' in self.driver.current_url:
# 切换 frame
pay_page.loc_frame()
num = test_data['CardNumber']
self.log.info("输入 Card Number: {}".format(num))
pay_page.input_card_number(num)
self.log.info("选择年月")
pay_page.select_card_month()
pay_page.select_card_year()
self.log.info("输入 Secure Code")
pay_page.input_secure_code(test_data['SecureCode'])
self.log.info("点击 PAY NOW")
pay_page.click_pay_now()
网友评论