0


selenium 重构-----代码分层优化

通过对上一篇文章中脚本的观察发现,上面的代码将函数和其他测试代码放在同一个文件中。随着自动化测试的深入,测试的内容和范围会逐步增加,这样的编码方式,不利于提高代码的可扩展性和可维护性。

上一篇文章:对selenium中元素定位方法进行重构再封装

为了更好的理解代码分层的理念,将根据同样的项目逐步进行深入挖掘和优化。如图所示为初步分层后的代码结构图。其中booking_tickets.py为测试代码文件;文件functions.py主要存放常用的基础方法等。
在这里插入图片描述
其中,基础常用方法代码如下:

# 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()defreturn_driver():'''
    函数return_driver()的功能是返回driver对象
    :return:driver对象
    '''return driver

defopen_base_site(url):'''
    打开网页
    :param url:要打开的网页地址
    :return:
    '''
    driver.get(url)defmax_window():'''
    浏览器窗口最大化
    :return:
    '''
    driver.maximize_window()defclose_driver():'''
    关闭浏览器
    :return:
    '''
    driver.quit()# 以下为定义函数部分,其目的是返回今天后的第n天后的日期,格式为“2022-03-28”defdate_n(n):returnstr((date.today()+ timedelta(days=int(n))).strftime('%Y-%m-%d'))defid(element):'''
    根据元素id属性值来返回元素定位语句。
    :param element: id属性值
    :return:按照id属性来定位元素的语句
    '''return driver.find_element(By.ID, element)defxpath(element):'''
    使用xpath定位元素
    :param element:
    :return:按照xpath方式来定位元素的语句
    '''return driver.find_element(By.XPATH, element)

测试代码文件的代码如下:

# 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 python chrome

本文转载自: https://blog.csdn.net/weixin_49981930/article/details/123802466
版权归原作者 王大傻0928 所有, 如有侵权,请联系我们删除。

“selenium 重构-----代码分层优化”的评论:

还没有评论