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

这篇具有很好参考价值的文章主要介绍了selenium 重构-----代码分层优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

# 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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件

    基于scrcpy的远程调试方案 基于scrcpy的Android群控项目重构 基于scrcpy的Android群控项目重构 进阶版 基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件(视频) 基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件(博客) 基于scrcpy的

    2024年02月16日
    浏览(61)
  • 自动化测试之web自动化(Selenium)

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! yycnblog 自动化测试概念:让程序代替人为去验证程序功能的过程,本

    2024年03月15日
    浏览(70)
  • Selenium自动化测试实战之自动化测试基础

    自动化测试概念 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程。 自动化只是测试方式,跟测试阶段无关。 可以把任何测试工作写一个程序自动化实现都可以称为自动化测试。 selenium自动化测试: 2023最新的Selenium自动化测试实战,没有比

    2024年02月13日
    浏览(65)
  • selenium 自动化测试—如何搭建自动化测试环境?

    🍅 视频学习: 文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,

    2024年02月19日
    浏览(94)
  • JavaScript+Selenium自动化测试_selenium和js能一起做自动化测试

    var webdriver = require(‘selenium-webdriver’), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser(‘chrome’) .build(); driver.get(‘https://www.baidu.com’); driver.findElement(By.id(‘kw’)).sendKeys(‘webdriver’); driver.findElement(By.id(‘su’)).click(); driver.wait(until.titleIs(‘webdriver_百度

    2024年04月25日
    浏览(43)
  • 【自动化测试】Java+Selenium自动化测试环境搭建

    本主要介绍以Java为基础,搭建Selenium自动化测试环境,并且实现代码编写的过程。 1.Selenium介绍 Selenium 1.0 包含 core、IDE、RC、grid 四部分,selenium 2.0 则是在两位大牛偶遇相互沟通决定把面向对象结构化(OOPP)和便于编写代码的各自思想予以整合后形成的新工具,也就是我们所

    2024年02月11日
    浏览(50)
  • 自动化测试介绍、selenium用法(自动化测试框架+爬虫可用)

    1、什么是自动化测试? 程序测试程序、代码代替思维、脚本代替人工 核心:质量和效率 作用:降低成本、节省人力时间、推动CI和DevOps、准确性和可靠性、模拟人工难以实现的手段、快速持续迭代发布能力、衡量产品的质量、提升测试效率、提高测试覆盖率 2、手工测试

    2024年03月08日
    浏览(78)
  • Selenium 做 Web 自动化,鼠标当然也要自动化!

    我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息。这个时候我们可以通过操作鼠标来实现,接下来我们来讲一下使用 selenium 做 Web 自动化的时候如何来操作鼠标。鼠标操作,我们可以使用 selenium 的 ActionChains 类来实现

    2024年02月03日
    浏览(41)
  • 【自动化测试】基于Selenium + Python的web自动化框架

    Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,p

    2024年02月07日
    浏览(76)
  • 测开 - 自动化测试 selenium - 自动化概念 && 测试环境配置 - 细节狂魔

    自动化测试指 软件测试的自动化 ,在 预设状态下 运行应用程序或者系统. 预设条件 包括正常和异常 ,最后评估运行结果。   自动化测试,就是 将人为驱动的测试行为转化为机器执行的过程。 【机器 代替 人工】 自动化测试 包括UI自动化,接口自动化,单元测试自动化。

    2024年02月02日
    浏览(103)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包