关于测试的那些事02

这篇具有很好参考价值的文章主要介绍了关于测试的那些事02。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

测试工具

1.禅道

2.selenium IDE

3.UI自动化优点

4.webdriver的原理

(1)定位元素(必须全局唯一):

(2)操作测试对象

(3)等待

(4)信息打印

  (5)对浏览器的操作

  (6)键盘事件

(7)定位一组元素

(8)多层框架定位

(9)层级定位

(10)下拉框中某个元素的定位三种方法:

(11)alter弹框的处理(对于弹出框要么关闭要么确定)

(12)div块的处理

  (13)上传文件

测试工具

1.禅道

项目管理工具,管理软件开发的整个生命周期。进行测试管理(测试需求,测试用例,测试过程,缺陷管理,报表统计)

2.selenium IDE

是一个录制自动化脚本工具(不常用,一般自己手写脚本)

3.UI自动化优点

进行大量重复测试,进行回归测试;减少人为出错;可进行繁琐测试;可进行手工测试很难执行的测试;节省资源;脚本的复用性

4.webdriver的原理

(1)启动浏览器,webdriver把浏览器绑定在一个端口,形成一个remote server(2)脚本通过command executor向server发送请求 (3) server接收到请求后,把web service命令转化为浏览器的native指令,去操作浏览器

selenium WebDriver API

from selenium import webdriver
import time   #导入需要的工具包
​
driver = webdriver.Chrome()  #获取浏览器的驱动尽量用谷歌,火狐还需要单独配置
driver.get("https://www.baidu.com/")  #从谷歌中自动打开百度
time.sleep(3)
driver.find_element_by_id("kw").send_keys("博君一肖")  #在百度右击检查,鼠标滑到输入框,看对应的id是什么  find_element_by_id定位元素
time.sleep(3)
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()  #关闭浏览器driver.close()

(1)定位元素(必须全局唯一):

tag_name,(一组元素,find_elements_...) name(不一定), id(肯定唯一), class_name, link_test(仅限于链接), partial_link_test, xpath(右击对应的那一行代码可以直接copy xpath) , css_selector(如前一个)

(2)操作测试对象

send_keys():向元素发送信息

click():点击元素

submit():提交表单

clear():清除元素的内容

text:获取元素的内容

(3)等待

固定等待: 必须等够该时间 使用这种方法时如果页面中元素还没有加载出来并且时间已经到了的时候,会无法定位到元素,导致无法进行接下来的操作

time.sleep(3)

隐式等待(智能等待):等待页面上的元素都加载出来后立刻执行下一个指令,未必会等待那么长时间

driver.implicitly_wait(10)

(4)信息打印

打印title/url:

title = driver.title
print(title)
url = driver.current_url
print(url)

(5)对浏览器的操作

浏览器的最大化:

driver.maximize_window()

设置浏览器的宽和高:

driver.set_window_size(400, 1000)

浏览器的前进和后退:

driver.back()
driver.forward()

浏览器滚动条的控制:

js0 = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(js0)#把滚动条拉至最低端
​
js1 = "var q=document.documentElement.scrollTop=0"
driver.execute_script(js1)#把滚动条拉至最顶端

(6)键盘事件

要想进行键盘操作,必须先导入包(所有的键盘操作要建立在定位到元素基础上)

from selenium.webdriver.common.keys import Keys

在需要登陆的网站时,可以直接输入用户名和密码自动登录

driver.find_element_by_id("account").send_keys("admin")
#使用tab键将焦点定位到用户名
driver.find_element_by_id("account").send_keys(Keys.TAB)
time.sleep(4)
driver.find_element_by_name("password").send_keys("123")
​
#用Enter键直接登录
driver.find_element_by_name("password").send_keys(Keys.ENTER)

组合键:导入工具包

from selenium.webdriver.common.action_chains import ActionChains
send_keys(Keys.Control,'a') #全选
send_keys(Keys.Control,'x') #剪切
ActionChains(driver).context_click(b).perform()#右击
ActionChains(driver).double_click(b).perform()#双击
#先定位到该元素,再把鼠标移动该元素上
action=driver.find_element_by_link_text("name")
ActionChains(driver).move_to_element(action).perform()

(7)定位一组元素

测试内容,自己写了一个html页面,其中有两个多选的checkbox,想要自动化测试,一次性选中这两个

a.先在浏览器打开这个html页面

导如包:import os

拼成一个url: file +/// +文件绝对路径

b.然后根据id定位元素(两个复选框)或者先定位出同一类元素,再根据定位元素的具体特征及逆行操作

url = "file:///" + os.path.abspath("C:/.../...html")
driver.get(url)
#第一种方法,但是太麻烦,如果复选框有很多代码冗余
driver.find_element_by_id("c1").click()
driver.find_element_by_id("c2").click()
#第二种方法,先定位出input类型的,在定位type是checkbox的
driver.find_elements_by_tag_name("input")
for button in buttons:
    if button.get_attribute('type')=='checkbox':
        button.click()
time.sleep(6)

(8)多层框架定位

a.如果要定位一个层级框架中的元素,必须先调到这个框架层级

b.如果要定位到某一个层级,必须从默认页面跳转

#从默认页面到f1
driver.switch_to.frame("f1")
#回到默认页面
driver.switch_to.default_content()

default content-->f1 :√ f1-->f2:√ f2-->f1:× default content-->f2:×

(9)层级定位

#定位link1
driver.find_element_by_link_text("link1").click()
driver.implicitly_wait(10)
#定位到Another action
action=driver.find_element_by_link_text("Another action")
#把鼠标移动到Another action上
ActionChains(driver).move_to_element(action).perform()

(10)下拉框中某个元素的定位三种方法:

a.直接用xpath定位

b.先定位出一组元素(tag name等),再根据元素属性筛选,再进行具体操作

c.先定位出一组元素(tag name等),通过数组下标定位

#第一种
driver.find_element_by_xpath("...").click()
#第二种
options=driver.find_elements_by_tag_name("option")
for option in options: #该元素的value为10.69
    if option.get_attribute('value') == '10.69':
        option.click()
#第三种
options=driver.find_elements_by_tag_name("option")
options[2].click() #该元素在数组中下标为2

(11)alter弹框的处理(对于弹出框要么关闭要么确定)

#先定位到元素,点击,使得弹框出现
driver.find_element_by_id("tooltip").click()
time.sleep(3)
#定位弹出框,获得弹出框的操作句柄
alert = driver.switch_to.alert
time.sleep(3)
#关闭弹出框
alert.accept()
#如果在弹出框输入相应的信息
alert.send_keys("输入的内容")
#获取弹出框内容
alert.text
#判断是否出现弹出框
from selenium.webdriver.support import expected_conditions as EC
result = EC.alert_is_present()(driver)
        if result:
            result.accept()
            print(result.txt)

(12)div块的处理

适用于页面复杂,元素非常多,没有id,并且name,或者tag name重复

首先要定位元素所在的div模块,再精准定位到元素

div1 = driver.find_element_by_class_name( "modal-body")
div1.find_element_by_link_text("click me").click()
time.sleep(4)

(13)上传文件

先定位到上传文件的按钮,再send_keys(需要上传文件的绝对路径+文件名字)文章来源地址https://www.toymoban.com/news/detail-400467.html

driver.find_element_by_name("file").send_keys(".....")

到了这里,关于关于测试的那些事02的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 一文详解:自动化测试工具——Selenium

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

    2024年01月16日
    浏览(59)
  • 如何使用自动化测试工具Selenium?

    哈喽,大家好,我是小浪。那么有一段时间没有更新了,还是在忙实习和秋招的事情,那么今天也是实习正式结束啦,开始继续更新我们的学习博客,后期主要是开发和测试的学习博客内容巨多,感兴趣的小伙伴们可以一键三连支持一下欧~ 目录 一、什么是自动化测试? 二、

    2024年02月11日
    浏览(61)
  • python自动化测试工具selenium

    selenium 是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等。官网地址为:Selenium。相对于另外一款web自动化测试工具QTP来说有如下优点: 免费开源轻量级,不同语言只需要一个体积很小的依赖包 支持多种系统,包括Windows,Mac,Linux 支持多种浏

    2024年02月08日
    浏览(83)
  • 自动化测试工具-Selenium:Selenium的核心三大组件详解

    目录 1. WebDriver 1.1 WebDriver的通信方式 1.2 WebDriver的功能 1.3 W3C推荐标准 2. Grid 3. IDE Selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目。官方对Selenium认可的三大组件或API分别是: WebDriver、Selenium IDE、Grid。 其中,WebDriver又被称为Selenium的核心。 下面本篇文章将深度介

    2024年02月03日
    浏览(46)
  • 自动化测试工具Selenium的语法续.

    OK,那么上篇博客我们介绍了如何搭建基于Java+selenium的环境,并且使用selenium的一些语法给大家演示了如何进行自动化测试的案例,那么本篇博客我们来继续学习selenium的一些其他的比较重要的语法,感谢关注,期待三连~ 目录 一、定位一组元素 二、下拉框处理 三、上传文件

    2024年02月10日
    浏览(58)
  • 自动化测试工具selenium的安装方法

    一、什么是selenium Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。 Selenium 通过使用  WebDriver  支持市场上所有主流浏览器的自动化。 Webdriver 是一个

    2024年02月09日
    浏览(47)
  • 自动化测试工具Selenium的基本使用方法,软件测试基础

    browser.find_element(By.ID,‘kw’).send_keys(“美女”) browser.find_element_by_id(‘kw’).send_keys(‘性感’) 2.通过标签name属性进行定位 browser.find_element_by_name(“wd”).send_keys(“Linux”) browser.find_element(By.NAME,‘wd’).send_keys(“美女”) 3.通过标签名进行定位 browser.find_element_by_tag_name(“input”).

    2024年04月22日
    浏览(67)
  • Selenium教程:自动化浏览器测试工具

    Selenium是一款用于自动化浏览器测试的工具,它提供了一系列的API和功能,使得开发人员可以编写脚本来模拟用户在浏览器中的行为。无论是在Web应用程序的功能测试、性能测试还是数据抓取方面,Selenium都是一个强大且广泛使用的工具。 在开始使用Selenium之前,您需要进行安

    2024年02月07日
    浏览(82)
  • Web应用程序测试工具Selenium用法详解

    目录 一、引言 二、Selenium简介 三、Selenium安装与配置 1、安装Selenium 2、配置浏览器驱动 3、配置测试环境 四、Selenium用法详解 1、导入Selenium库和浏览器驱动 2、启动浏览器并打开网页 3、定位元素 4、执行操作 5、断言与验证 6、等待与隐式等待 7、关闭浏览器 五、总结与建议

    2024年02月02日
    浏览(63)
  • 自动化测试工具之Selenium IDE录制教程

            下载传送带:Selenium IDE · Open source record and playback test automation for the web         这里Darren洋以firefox火狐浏览器为例,将以上下载url直接在firefox浏览器中打开,点击对应下载按钮后,就会进入添加页面。         这里直接点击添加到Firefox浏览器的按钮即可,谷歌浏

    2024年02月08日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包