web自动化测试基础(从配置环境到自动化实现登录测试用例的执行,vscode如何导入自己的python包)

接下来的一段时间里我会和大家分享自动化测试相关的一些知识希望大家可以多多支持,一起进步。

一、环境的配置

前提安装好了python解释器并配好了环境,并安装好了VScode
下载的浏览器和浏览器驱动需要一样的版本号(只看大版本)。

1、安装浏览器

Chrome浏览器下载地址,点链接接后,根据自己的操作系统选择不同的版本,windows就下载win版本的,linux就下linux版本的。推荐大家下载stable下的版本,比较稳定,如果已经安装好浏览器的可以通过下图查看自己的版本号。
在这里插入图片描述

2、安装浏览器相关驱动

Chromedriver浏览器驱动压缩包下载地址,安装的驱动版本要和浏览器版本一致。

python_14">3、将驱动中的快捷方式添加到python解释器路径下

打开下载好的驱动压缩包,解压缩,将文件按中的chromedriver.exe文件复制到你的python安装路径下面。图中是已经完成后的截图。
在这里插入图片描述
如何查看自己的python安装路径按住快捷键win+r,弹出的运行框内输入cmd,然后输入where python即可查看自己的python安装路径。
在这里插入图片描述

4、安装selenium

打开python安装路径,点击文件路径栏输入cmd按回车,然后输入pip install selenium,指令就可以等待selenium安装了。
在这里插入图片描述
安装好后在vscode中运行如下代码,如果可以自动打开浏览器并访问百度页面后关闭就是所有东西准备就绪了。

python">import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开浏览器
driver = webdriver.Chrome()
driver.maximize_window()
# 访问登录页
driver.get("https://www.baidu.com/")
time.sleep(10)
# 关闭浏览器
driver.quit()

二、web自动化测试五大步骤

1、导入包

python">import time
#这两个包是必须要导入的
from selenium import webdriver
from selenium.webdriver.common.by import By

2、打开浏览器

通过webdriver创建一个chrome浏览器,并于变量driver来接收。

python">driver = webdriver.Chrome()
#最大化浏览器窗口
driver.maximize_window()

3、访问登陆页面

利用get方法打开你要操作的页面。

python">driver.get("https://www.baidu.com/")

4、执行相关操作

就可以执行你要执行的操作。先元素定位,然后调用方法就可以实现具体操作。
下面是一个实现登录的例子。自动输入账号密码验证码等等。

python"># 操作
# 用户名
# driver.find_element(By.ID,'username').send_keys('admin')
# 通过driver.find_elements,获取一组数据,返回的是一个列表,可以用列表的索引来赋值。
driver.find_elements(By.CLASS_NAME,'login-text1')[0].send_keys('admin')
# 密码
driver.find_elements(By.CLASS_NAME,'login-text1')[1].send_keys('HM_2023_test')
# 验证码0
driver.find_elements(By.CLASS_NAME,'login-text1')[2].send_keys('8888')
# 登录按钮
driver.find_element(By.CLASS_NAME,'login-button').click()

5、关闭浏览器

最后关闭并退出浏览器

python">driver.quit()

三、如何在各种路径下导入自定义包

1、同级目录下如何导入包

因为python一切皆对象所以只要是.py文件就可以当作包来引用。
同级目录下导入自己的包只需要import 包名,就可以导入自己的包,调用自己包里的方法 。

python">import 包名

如果只想导入包里的某些方法就可以from 包名 import 方法名1,方法名2
例如

python">from ChromDriver import getDriver,quitDriver

2、如何导入同级目录的下的下级目录的包

from 文件名.包名 import 方法名1,方法名2
例如

python">from tools.ChromDriver import getDriver,quitDriver

3、如何导入上级目录下的下级目录的包

如图,longin.py里面如何引入ChromeDriver.py里面的方法呢。因为Python在导入包的时候,会对包所在的路径进行搜索,并且这个搜索是有优先级的。

  • 首先是当前目录:Python首先检查当前的工作目录。
  • 其次PYTHONPATH,这是环境变量,包含了一系列目录路径,Python会在此查找。
  • 然后是安装的第三方库:Python会检查在site-packages目录下的第三方库。
  • 最后,Python会检查内置的标准库。

这样我们如图所示的文件就完美的避开了所有的搜索,所以我们需要告诉编译器我们导入包的位置用sys.path.append方法,让编译器在我们告诉它的目录下搜索,这个目录就是这两个包的根目录,也就是scrpits和tools的上级目录hm_test_zidonghua。总体的目录层级示意图如下
在这里插入图片描述

python">import sys
# 当导入包时,一定要包含这个包的根目录
sys.path.append(r"D:\mypython\hm_test_zidonghua") 

在这里插入图片描述

四、利用随机数填写随机的电话号码

当我们需要利用自动化注册很多账号时,我们不可以每次运行都在代码里改我们输入的电话号码,所以我们需要随机输入电话号码,这就需要用到格式化输出f表达式 (f’153{11110000,88887777}’ )该表达式{ }里面的值会直接替换字符串中的内容起到随机输入电话号码的作用 。

python">driver.find_elements(By.CLASS_NAME,'login-text1')[0].send_keys(f'153{11110000,88887777}')

http://www.niftyadmin.cn/n/5695180.html

相关文章

DFT ATPG coverage的行业标准是多少?

1. **不同应用场景下的一般要求** - **消费类电子产品(如手机、平板电脑等)** - 在消费类电子产品中,对于DFT ATPG覆盖率通常要求达到90% - 95%左右。这是因为这类产品的市场竞争激烈,成本控制较为重要。虽然消费者对产品…

redis高级(面试题一)

目录 一、Redis持久化机制有哪些?有什么区别? 1、RDB(redis database) 2、AOF 3、区别 二、redis的主从集群有什么用? 1、什么是redis的主从集群 2、为什么要使用redis主从集群(也就是有什么用) 三、redis的哨兵…

使用C# winform 开发一个任务管理器

前言 为啥要开发这个呢 ,系统自带的关闭有些程序就关不了,它有好多线程,你关一其中一个它后台又重新开了一个,关不完,使用我这个呢 就把所有相同名称进程看作一个,一关就关 下载软件 v1 Form1.cs using System; using System.Windows.Forms;namespace TaskMaster {public pa…

栈与队列面试题(Java数据结构)

前言: 这里举两个典型的例子,实际上该类型的面试题是不确定的! 用栈实现队列: 232. 用栈实现队列 - 力扣(LeetCode) 方法一:双栈 思路 将一个栈当作输入栈,用于压入 push 传入的数…

自动机器学习(AutoML):实战项目中的应用与实现

自动机器学习(AutoML):实战项目中的应用与实现 目录 🔍 AutoML概念与实战意义🛠️ 使用TPOT进行模型选择与优化🖼️ 利用AutoKeras进行图像分类📈 实际项目案例:金融数据预测&…

毒蘑菇检测数据集 9200张 14类毒蘑菇 带标注 voc yolo

毒蘑菇检测数据集 9200张 14类毒蘑菇 带标注 voc yolo 分类名: (图片张数,标注个数) Amanita citrina: (700, 816) Gyromitra infula: (842, 1102) Hygrophoropsis aurantiaca: (766, 1578) Imleria badia: (794, 1027) Lactarius turpis: (728, 891) Boletus reticulatus: (67…

OpenFegin

文章目录 一、OpenFegin是什么?二、基本使用三、超时重试机制4.自定义超时重传机制五、底层实现 一、OpenFegin是什么? OpenFeign的全称为Spring Cloud OpenFeign(下文简称OpenFeign),是Spring Cloud团队开发的一款基于 Feign的框架,声明式W…

MySQL数据库备份与恢复的深度解析

作为一名资深DBA,深知数据库备份与恢复在企业数据管理中的重要性。数据是企业的核心资产,任何数据的丢失都可能对业务造成不可挽回的损失。本文将深入探讨MySQL数据库的备份与恢复策略,旨在帮助您建立健全的数据保护机制。 一、为什么备份与…