接下来的一段时间里我会和大家分享自动化测试相关的一些知识盼望大家可以多多支持,一起进步。
一、情况的配置
前提安装好了python解释器并配好了情况,并安装好了VScode
下载的欣赏器和欣赏器驱动需要一样的版本号(只看大版本)。
1、安装欣赏器
Chrome欣赏器下载地址,点链接接后,根据自己的操作体系选择不同的版本,windows就下载win版本的,linux就下linux版本的。推荐大家下载stable下的版本,比较稳定,假如已经安装好欣赏器的可以通过下图检察自己的版本号。
2、安装欣赏器相关驱动
Chromedriver欣赏器驱动压缩包下载地址,安装的驱动版本要和欣赏器版本同等。
3、将驱动中的快捷方式添加到python解释器路径下
打开下载好的驱动压缩包,解压缩,将文件按中的chromedriver.exe文件复制到你的python安装路径下面。图中是已经完成后的截图。
如何检察自己的python安装路径按住快捷键win+r,弹出的运行框内输入cmd,然后输入where python即可检察自己的python安装路径。
4、安装selenium
打开python安装路径,点击文件路径栏输入cmd按回车,然后输入pip install selenium,指令就可以等候selenium安装了。
安装好后在vscode中运行如下代码,假如可以自动打开欣赏器并访问百度页面后关闭就是所有东西准备就绪了。
- 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、导入包
- import time
- #这两个包是必须要导入的
- from selenium import webdriver
- from selenium.webdriver.common.by import By
复制代码 2、打开欣赏器
通过webdriver创建一个chrome欣赏器,并于变量driver来接收。
- driver = webdriver.Chrome()
- #最大化浏览器窗口
- driver.maximize_window()
复制代码 3、访问登岸页面
利用get方法打开你要操作的页面。
- driver.get("https://www.baidu.com/")
复制代码 4、实行相关操作
就可以实行你要实行的操作。先元素定位,然后调用方法就可以实现具体操作。
下面是一个实现登录的例子。自动输入账号密码验证码等等。
- # 操作
- # 用户名
- # 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、关闭欣赏器
末了关闭并退出欣赏器
三、如何在各种路径下导入自定义包
1、同级目次下如何导入包
因为python一切皆对象所以只要是.py文件就可以当作包来引用。
同级目次下导入自己的包只需要import 包名
,就可以导入自己的包,调用自己包里的方法 。
假如只想导入包里的某些方法就可以from 包名 import 方法名1,方法名2
例如
- from ChromDriver import getDriver,quitDriver
复制代码 2、如何导入同级目次的下的下级目次的包
from 文件名.包名 import 方法名1,方法名2
例如
- 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。总体的目次层级示意图如下
- import sys
- # 当导入包时,一定要包含这个包的根目录
- sys.path.append(r"D:\mypython\hm_test_zidonghua")
复制代码
四、利用随机数填写随机的电话号码
当我们需要利用自动化注册很多账号时,我们不可以每次运行都在代码里改我们输入的电话号码,所以我们需要随机输入电话号码,这就需要用到格式化输出f表达式 (f’153{11110000,88887777}’ )该表达式{ }里面的值会直接更换字符串中的内容起到随机输入电话号码的作用 。
- driver.find_elements(By.CLASS_NAME,'login-text1')[0].send_keys(f'153{11110000,88887777}')
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |