selenium自动化测试实战

自动化测试工具——Selenium详解 Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。 阅读详情

一、Selenium介绍
Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手)。也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。
中文文档:http://selenium-python-zh.readthedocs.io/en/latest/index.html
英文文档:http://selenium-python.readthedocs.io/index.html

二、python、pycharm安装
Python官网下载链接:
https://www.python.org/downloads/windows/
pycharm官网下载链接:https://www.jetbrains.com/pycharm/download/#section=windows

三、selenium安装
1)pip install selenium
安装Chrome driver
https://chromedriver.storage.googleapis.com/index.html?path=2.29/
Chrome浏览器和Chromedriver版本号:

chromedriver版本支持的Chrome版本
v2.43v69-71
v2.42v68-70
v2.41v67-69
v2.40v66-68
v2.39v66-68
v2.38v65-67
v2.37v64-66
v2.36v63-65
v2.35v62-64
v2.34v61-63
v2.33v60-62
v2.32v59-61
v2.31v58-60
v2.30v58-60
v2.29v56-58
v2.28v55-57
v2.27v54-56
v2.26v53-55
v2.25v53-55
v2.24v52-54
v2.23v51-53
v2.22v49-52
v2.21v46-50
v2.20v43-48
v2.19v43-47
v2.18v43-46
v2.17v42-43
v2.13v42-45
v2.15v40-43
v2.14v39-42
v2.13v38-41
v2.12v36-40
v2.11v36-40
v2.10v33-36
v2.9v31-34
v2.8v30-33
v2.7v30-33
v2.6v29-32
v2.5v29-32
v2.4v29-32

2)把chromedriver.exe拷贝到到chrome的安装目录下…\Google\Chrome\Application\ ,同时把chrome的安装目录加入到path环境变量。

四、自动测试实战:12306订票
1.知识点
Selenium定位web元素的方法
浏览器调试工具使用

2.步骤
1) 人工走一遍流程,对自动化的流程心中有数
2) 按步骤拆分,然后对每一个小步骤编写自动化脚本
3) 将所有步骤合起来,多次运行,测试脚本

3.打开12306

#打开网址
driver.get('https://kyfw.12306.cn/otn')
#睡五秒自动选择验证码
time.sleep(5)

4.登录12306
1)在chrome界面,按F12快捷键,弹出chrome的调试工具
2)找出登录按钮的id和username、password的id
根据id定位元素

driver.find_element_by_id("username").click()
driver.find_element_by_id("username").send_keys("5xxxx68397@qq.com")
driver.find_element_by_id("password").send_keys("***")
print("continue")
time.sleep(15)

根据链接的文本来定位元素

driver.find_element_by_link_text("车票预订").click()
time.sleep(5)

在这里插入图片描述

选择出发地
这里写图片描述
**利用js代码冻结浏览器界面。
setTimeout(function(){debugger;}, 5000)
**

#出发地选择
driver.find_element_by_id("fromStationText").click()
# setTimeout(function(){debugger;}, 5000)
driver.find_element_by_css_selector(u"[title=广州]").click()

time.sleep(5)

在这里插入图片描述

右击代码位置,选择copy selector这里写图片描述

在这里插入图片描述

这里写图片描述
选择出发日
这里写图片描述这里写图片描述
选择车次类型:
五、实验分析:
1、不会破解12306的变态验证码。没有自动破解验证码,所以留五秒钟自己手动选验证码。
2、因为是学生认证所以多一步需要确认(不是学生可去掉)
3、订票成功

六、总结
自动化测试的优点是能够很快、很广泛地查找缺陷,同时可以做很多重复性的工作,在回归测试阶段,我们可以利用自动化功能测试工具进行,而无须大量的软件测试人员手动的再次执行测试用例,极大的提高了工作效率。
自动化测试的缺点也很明显,它们只能检查一些比较主要的问题,如崩溃、死机,但是却无法发现一些一般的日常错误,这些错误通过人眼很容易找到,但机器却往往找不到。另外,在自动测试中编写测试脚本工作量也很大,有时候该工作量甚至超过了手动测试的时间。
Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。
Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。

附代码:

#-*-coding:utf8-*-
import time
from selenium import webdriver

#运行chrome,打开浏览器
driver =webdriver.Chrome()
#设置浏览器窗口
driver.set_window_size(1080,800)

#设置全局操作时间
driver.implicitly_wait(10)

#打开网址
driver.get('https://kyfw.12306.cn/otn')

time.sleep(5)

driver.find_element_by_link_text("账号登录").click()
driver.find_element_by_id("J-userName").click()
driver.find_element_by_id("J-userName").send_keys("5xxx68397@qq.com")
driver.find_element_by_id("J-password").send_keys("***")
print("continue")
#睡十五秒自动选择验证码 app扫码登陆
time.sleep(15)

driver.find_element_by_link_text("车票预订").click()
time.sleep(5)
#出发地选择
driver.find_element_by_id("fromStationText").click()
# setTimeout(function(){debugger;}, 5000)
driver.find_element_by_css_selector(u"[title=广州]").click()

time.sleep(5)
#目的地选择
driver.find_element_by_id("toStationText").click()
driver.find_element_by_css_selector(u"[title=北京]").click()
time.sleep(5)

#出发日期选择
driver.find_element_by_id("train_date").click()
driver.find_element_by_css_selector("body > div.cal-wrap > div:nth-child(1) > div.cal-cm > div:nth-child(24) > div").click()
time.sleep(5)

#车型选择
driver.find_element_by_css_selector("#_ul_station_train_code > li:nth-child(1) > label").click()
time.sleep(5)

while True:
    try:
        driver.find_element_by_id("query_ticket").click()
        e=driver.find_element_by_id("SWZ_6i00000G720F")
        e.click()
        if e.text in [u'无','--']:
            print ("nono")
            time.sleep(1)
        else:
            print("yes")
            # 购票
            driver.find_element_by_link_text("预订").click()
            # 乘车人选择
            driver.find_element_by_css_selector("#normal_passenger_id > li:nth-child(1) > label").click()
            # 学生票确认(不是学生可去掉)
            driver.find_element_by_link_text("确认").click()
            # 提交订单
            driver.find_element_by_link_text("提交订单").click()
            driver.find_element_by_link_text("确认").click()
    except:
        pass
自动化测试selenium 目录一、什么是自动化测试1.1单元测试1.2接口自动化1.3 UI自动化二、如何实施自动化测试三、自动化测试需要了解的技能四、selenium介绍4.1 Selenium IDE4.2 Webdriver 一、什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(R 阅读详情

相关推荐

测试——自动化测试Selenium工具)

第一个自动化测试实例,Selenium自动化测试

日常学习记录、分享,愿我们都遇见更好的自己,与诸君共勉 3722

自动化测试selenium

用于与各种浏览器(如 Chrome、Firefox、Edge 等)进行交互,模拟人类操作浏览器的行为(如打开网页、点击按钮、输入文本等)。webdriver 保证不同的浏览器、不同的编程语言之间操作接口的一致性,是实现web自动化测试、爬虫等场景的关键工具。弹出的对话框有三种类型,分别是 Alert(警告信息)、confirm(确认信息)和prompt(提示输入)Alert 弹出框,目的就是显示通知信息,只需用户看完信息后,点击 OK(确定) 就可以。,如果该选项已经勾选了,就不能再点击。

2301_80735610的博客 650

Selenium 自动化测试从零实战

课程简介 本课程注重自动化实践,同时讲解一些基础的自动化测试理念,以及常用的 Java 思维,以便快速理解并掌握自动化测试体系、掌握自动化测试的基础核心内容以及自动化框架的整合实现。以“亚马逊购物流程”为例,着重讲解调用被测元素、测试框架 TestNG 的使用,尽量做到让刚入门自动化的读者也能感受到自动化的魅力。 作者简介 王海宝,高级测试工程师,课课家讲师,Testfan 社区、博客园知名撰稿人...

GitChat 3459

【测试开发】自动化测试 selenium

万字长文总结,详细讲解自动化测试selenium的常用API,以及一些场景设计等内容。

weixin_69417428的博客 1万+

Selenium自动化测试

Selenium自动化测试一、为什么还要学Python?二、Selenium自动化测试工具三、发展方向总结 一、为什么还要学Python? Python 学习成本低 Python 少量的代码构建出丰富的功能 Python 拥有成熟的程序包资源库 Python 在数据科学领域广泛使用。 Python 是跨平台且开源的。 Python 易于被其他编程需要集成,例如 CPython Python 普遍在大学课程中使用 二、Selenium自动化测试工具 1.自动化测试工具 性能自动化测试工具:loadrunn

mz474920631的博客 2万+

Python+Selenium自动化测试项目实战【建议收藏】

在ActionChains类中所有提供的鼠标事件方法,在调用的时候,所有的行为都存储在ActionChains对象中,调用ActionChains的方法时不会立即执行,会将所有的操作按顺序存放在一个队列里,当调用perform()方法时,队列中的事件会依次执行,先进先出,后进后出。帮我们打开浏览器,输入网址,输入账号密码登录,及登录后的操作,总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来,把时间和精力花到更好的地方去,去挖掘更多的产品缺陷。

kk_lzvvkpj的博客 4891

Selenium2+Python自动化测试实战(第二版)》.pdf下载介绍

Selenium2+Python自动化测试实战(第二版)》.pdf下载介绍 【下载地址】Selenium2Python自动化测试实战第二版.pdf下载介绍 《Selenium2+Python自动化测试实战(第二版)》是一本经典的自动化测试教材,深入讲解了Selenium2与Python的结合应用。本书从自动化测试基础入...

gitblog_06723的博客 1216

Python+Selenium自动化测试项目实战

自动化测试就是通过自动化测试工具帮我们打开浏览器,输入网址,输入账号密码登录,及登录后的操作,总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来,把时间和精力花到更好的地方去,去挖掘更多的产品缺陷。

测试萌萌 942

Selenium:开源自动化测试框架的Java实战解析

Selenium作为一款开源的自动化测试框架,以其强大的功能和广泛的兼容性,在Web应用程序自动化测试领域发挥着重要作用。通过Java编写的Selenium测试脚本,可以充分利用Java的面向对象特性和Selenium的丰富API,实现高效、稳定的自动化测试。希望本文能够帮助你更好地理解Selenium,并在实际项目中加以应用。

喜欢猪猪 1281

Python Selenium自动化测试实战教程

Web自动化测试在现代软件开发中扮演着至关重要的角色,它能够帮助测试人员快速、高效地完成测试任务,确保产品的质量。Selenium是一个广泛使用的开源自动化测试框架,专为Web应用设计,支持多种浏览器和操作系统。它通过模拟用户与浏览器的交互行为来实现测试,极大地提高了自动化测试的效率和覆盖率。本章将为读者提供Selenium的概览,涵盖其基本原理、主要组件以及与其他自动化工具的对比,为后续章节中Selenium在Python中的应用奠定基础。

weixin_42583683的博客 1236

Selenium自动化测试项目实战指南

随着自动化测试需求的日益增长,Selenium作为一套开源的测试自动化工具,已经成为业界的宠儿。Selenium能够模拟用户与浏览器的交互,执行复杂的测试流程,并广泛应用于Web应用程序的功能测试中。其核心功能包括页面元素操作、表单输入、页面导航以及浏览器行为控制等。不仅如此,Selenium社区支持多种编程语言,如Java、Python、C#等,用户可以根据自身熟悉度选择相应的语言进行脚本编写。接下来,我们将探索如何利用WebDriver和Selenium Grid等功能,来构建更高效的自动化测试体系。

weixin_28793831的博客 660

自动化测试概念与 Web 自动化实战(基于 Selenium

本文系统介绍了自动化测试在C++项目中的应用,重点分析了Web自动化测试的核心工具Selenium及其实现流程。首先阐述了自动化测试的本质是通过程序代替人工操作,提升回归测试效率,但明确指出其不能完全取代人工测试。文章详细解析了接口自动化和UI自动化的区别,并介绍了理想的"自动化测试金字塔"模型。在实战部分,通过百度搜索案例演示了Selenium+Python的环境搭建和脚本编写过程,包括元素定位、操作执行等关键步骤,最后还深入剖析了Selenium与浏览器驱动的工作流程。

2301_79479763的博客 1223

Selenium与ChromeDriver自动化测试实战

Selenium 是当前最主流的开源 Web 自动化测试工具,广泛应用于功能测试、回归测试及UI自动化场景。它支持多浏览器、多平台操作,并可与多种编程语言(如 Java、Python、C#)无缝集成,具备高度灵活性和可扩展性。本章将引导读者了解 Selenium 的核心组件(如 WebDriver、IDE、Grid),并通过实际应用场景说明其在企业级自动化测试中的价值,为后续深入学习打下坚实基础。

weixin_42608318的博客 1097

python自动化测试实战 虫师_Selenium3自动化测试实战——基于Python语言

版权页前言第1章 自动化测试基础1.1 分层的自动化测试1.2 适合自动化测试的项目1.3 如何学习UI自动化测试1.4 Selenium简介1.5 appium简介第2章 测试环境搭建2.1 安装Python2.2 安装Selenium2.3 第一个Selenium自动化测试脚本2.4 浏览器驱动第3章 Python基础3.1 Python哲学3.2 输出3.2.1 打印3.2.2 引号与注释3...

weixin_39584571的博客 1723

Selenium+Pytest自动化测试框架实战

首先我们上述这种较为原始的方法,基本不适用于平时做UI自动化测试的,因为在UI界面实际运行情况远远比较复杂,可能因为网络原因,或者控件原因,我们元素还没有显示出来,就进行点击或者输入。以上四种代码主体进行了拆分,虽然在用例很少的情况下做会增加代码,但是当用例多的时候意义很大,代码量会在用例增加的时候显著减少。但是还有一个问题,我们怎么样才能确保我们写的每一项元素不出错,人为的错误是不可避免的,但是我们可以通过代码来运行对文件的审查。在这个文件中我们可以设置自己的各个目录,也可以查看自己当前的目录。

chengxuyuznguoke的博客 889
上一篇: Windows下MongoDB安装以及使用
下一篇: 获得旅行青蛙无限三叶草方法及apk
Shannonnnn
博客等级 码龄10年 241粉丝 69原创
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值