IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> (三) web自动化测试-selenium测试用例编写 -> 正文阅读

[系统运维](三) web自动化测试-selenium测试用例编写

(三) web自动化测试-selenium测试用例编写



前言

使用selenium手工编写测试用例,官方文档地址:文档入口

一、selenium用例的关键要素

示例需求:

  • 打开百度首页
  • 搜索框输入北京
  • 回车搜索
  • 点击第一个搜索结果

1. 导入selenium

首先导入selenium的webdriver,用于后续创建driver对象,进行浏览器的操作

from selenium import webdrier

2. 创建driver

创建测试类,把driver的对象创建,放在setup中去,把资源释放放在teardown中,如下
注:

  • webdriver.Chrome()创建chrome对象,当环境变量未配置时也可以在chrome()中指定chromedriver的绝对路径
  • quit()方法用来关闭driver对象
class TestBaidu():
	def setup(self):
		self.driver = webdriver.Chrome()
	
	def teardown(self):
		self.driver.quit()		

3. 执行自动化步骤

定义测试方法,编写测试的步骤:

    def test_baidu(self):
        self.driver.get("https://www.baidu.com")
        self.driver.find_element(By.ID, "kw").click()
        self.driver.find_element(By.ID, "kw").send_keys("北京")
        time.sleep(2)
        self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
        time.sleep(2)
        self.driver.find_element(By.XPATH, "//div[@id='1']/div/div/h3/a").click()
	

完整代码如下:

import time

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By


class TestBaidu():
    def setup(self):
        self.driver = webdriver.Chrome()

    def teardown(self):
        self.driver.quit()

    def test_baidu(self):
        self.driver.get("https://www.baidu.com")
        self.driver.find_element(By.ID, "kw").click()
        self.driver.find_element(By.ID, "kw").send_keys("北京")
        time.sleep(2)
        self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
        time.sleep(2)
        self.driver.find_element(By.XPATH, "//div[@id='1']/div/div/h3/a").click()

二、简单优化

1. 显示等待

由于网络原因或服务响应速度原因,有时候元素并不能马上加载出来,这个时候就需要添加等待时间来确保元素可以价值出来,显式等待使用time的sleep方法,在每个步骤后面添加等待时间

sleep(2)

2. 隐式等待

每个步骤都去添加sleep比较麻烦,而且等待时候很难确认,所以建议使用隐式等待,使用webdriver的implicitly_wait()方法即可

注:implicitly_wait()方法定义的等待时间是全局的,即每个操作步骤都会持续查找元素固定的时间,找到元素后直接结束,不用等待到定义的时间。

	self.driver.implicitly_wait(3)

隐式等待优化后代码如下:

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By


class TestBaidu():
    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get("https://www.baidu.com")
        self.driver.implicitly_wait(5)

    def teardown(self):
        self.driver.quit()

    def test_baidu(self):
        self.driver.find_element(By.ID, "kw").click()
        self.driver.find_element(By.ID, "kw").send_keys("北京")
        self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
        self.driver.find_element(By.XPATH, "//div[@id='1']/div/div/h3/a").click()


总结

简单介绍selenium编写测试用例的过程:导入包->实例化driver对象->设置等待时间->操作网站->释放资源

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-04 00:07:03  更:2022-06-04 00:07:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:48:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码