通过对上一篇文章中脚本的观察发现,上面的代码将函数和其他测试代码放在同一个文件中。随着自动化测试的深入,测试的内容和范围会逐步增加,这样的编码方式,不利于提高代码的可扩展性和可维护性。
上一篇文章:对selenium中元素定位方法进行重构再封装
为了更好的理解代码分层的理念,将根据同样的项目逐步进行深入挖掘和优化。如图所示为初步分层后的代码结构图。其中booking_tickets.py为测试代码文件;文件functions.py主要存放常用的基础方法等。
其中,基础常用方法代码如下:文章来源:https://www.toymoban.com/news/detail-806354.html
# coding = utf-8
# Date: 2022/3/28 16:23
'''基础常用方法'''
from datetime import date,timedelta
from selenium import webdriver
from selenium.webdriver.common.by import By
# 将driver设置为全局变量
driver = webdriver.Chrome()
def return_driver():
'''
函数return_driver()的功能是返回driver对象
:return:driver对象
'''
return driver
def open_base_site(url):
'''
打开网页
:param url:要打开的网页地址
:return:
'''
driver.get(url)
def max_window():
'''
浏览器窗口最大化
:return:
'''
driver.maximize_window()
def close_driver():
'''
关闭浏览器
:return:
'''
driver.quit()
# 以下为定义函数部分,其目的是返回今天后的第n天后的日期,格式为“2022-03-28”
def date_n(n):
return str((date.today() + timedelta(days=int(n))).strftime('%Y-%m-%d'))
def id(element):
'''
根据元素id属性值来返回元素定位语句。
:param element: id属性值
:return:按照id属性来定位元素的语句
'''
return driver.find_element(By.ID, element)
def xpath(element):
'''
使用xpath定位元素
:param element:
:return:按照xpath方式来定位元素的语句
'''
return driver.find_element(By.XPATH, element)
测试代码文件的代码如下:文章来源地址https://www.toymoban.com/news/detail-806354.html
# coding = utf-8
# Date: 2022/3/28 16:22
'''测试火车票查询的页面元素'''
from functions import return_driver, open_base_site, id, xpath, max_window, date_n, close_driver
from time import sleep
# url:12306首页
url = 'https://www.12306.cn/index/'
# 以下变量用于定义出发城市和到达城市
from_station, to_station = '成都', '重庆'
# tomorrow变量:出发日期
tomorrow = date_n(1)
# 打开浏览器
driver = return_driver()
# 打开12306首页
open_base_site(url)
# 设置窗口最大化
max_window()
# 输入出发城市
xpath('//input[@id="fromStationText"]').click()
xpath('//input[@id="fromStationText"]').send_keys(from_station)
xpath('//div[@id="citem_2"]').click()
# 输入到达城市
xpath('//input[@id="toStationText"]').click()
xpath('//input[@id="toStationText"]').send_keys(to_station)
xpath('//div[@id="citem_1"]').click()
# 输入出发时间
id('train_date').clear()
id('train_date').send_keys(tomorrow)
# 点击查询
id('search_one').click()
# 切换到新窗口
driver.switch_to.window(driver.window_handles[1])
# 点击D2244车次的预订
xpath('//tr[starts-with(@id,"ticket_76000D22440N_01_06")]/td/a').click()
# 等待页面加载
sleep(2)
'''账号登录'''
# 输入用户名
id('J-userName').send_keys('qaws12342')
# 输入密码
id('J-password').send_keys('qwedsa123')
# 关闭浏览器
close_driver()
到了这里,关于selenium 重构-----代码分层优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!