还在愁没有项目可以做自动化测试的小伙伴,也不用太愁,其实随便找个网站都可以做自动化测试,起码基本的增删改查功能都可以,我自己也是找了一个比较简单的网站(蓝湖)先练手,先把元素定位和元素操作熟悉起来,后面再去学框架的东西,这里把我自己练习的一个脚本分享给大家,希望对大家也有帮助。
练习前请先下载安装
selenium ---- 4.26.1 pip install selenium==4.26.1
Python -----3.11.0 Python Releases for Windows | Python.org
pycharm ----最新版本 https://www.jetbrains.com/zh-cn/pycharm/download/
安装成功后直接打开pycharm新建项目和python文件,然后复制下面的脚本先运行,然后一行一行分解,一边写一边就知道改补充哪些知识点了。
# 导入浏览器驱动组件
from selenium import webdriver
# 导入by类
from selenium.webdriver.common.by import By
# 导入鼠标操作类ActionChains
# from selenium.webdriver import ActionChainsfrom selenium.webdriver.common.keys import Keys # 键盘操作
# 导入等待组件
# from selenium.webdriver.support.wait import WebDriverWait
# from selenium.webdriver.support import expected_conditions as EC
# 导入时间组件
import time
# 设置浏览器不自动关闭
options = webdriver.EdgeOptions()
options.add_experimental_option("detach", True)
# 设置浏览器不进行自动化测试检测
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option("excludeSwitches", ['enable-automation'])
# 禁用“保存密码”弹出窗口
options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False})
# 设置浏览器打开时最大化
options.add_argument('--start-maximized')
options.add_argument('disable-infobars')# 实例化浏览器对象,定义一个浏览器,并把设置项也添加到其中
driver = webdriver.Edge(options=options)# 输入需要访问的网址
driver.get("https://lanhuapp.com/")# 点击右上角登录按钮
driver.find_element(By.XPATH, '//*[@id="home"]/div[2]/div/div[1]/div[2]/ul[2]/li[2]').click()
handles = driver.window_handles # 获取当前浏览器的所有窗口句柄
driver.switch_to.window(handles[-1]) # 切换到最新打开的窗口
# 添加睡眠等待页面加载(2.5秒的等待才能成功?,)
time.sleep(6)# 登录
# 输入登录账号信息
driver.find_element(By.XPATH, "//*[@id='nav']/div/div/div[2]/div[1]/div[2]/div[2]/input").send_keys("1310652170@qq.com")
# 勾选协议
driver.find_element(By.XPATH, '//*[@id="nav"]/div/div/div[2]/div[1]/div[2]/div[4]/div/img[2]').click()
# 点击登录按钮
driver.find_element(By.XPATH, '//*[@id="nav"]/div/div/div[2]/div[1]/div[2]/div[3]').click()# 跳转到输入密码的页面
handles = driver.window_handles # 获取当前浏览器的所有窗口句柄
driver.switch_to.window(handles[-1]) # 切换到最新打开的窗口
# 等待一下页面元素加载
time.sleep(2)
# 输入密码
driver.find_element(By.XPATH, '//*[@id="nav"]/div/div/div[2]/div[1]/div/div[3]/input[2]').send_keys("Zmj*1220")
# 点击登录按钮
driver.find_element(By.XPATH, '//*[@id="nav"]/div/div/div[2]/div[1]/div/div[4]').click()
# 停留2秒
time.sleep(5)
# 关闭对话提示框
driver.find_element(By.XPATH, '/html/body/div[2]/lh-modal/div/div[2]/slot-fb[2]/div/lh-button/button').click()# 文件重新命名
# 点击隐藏的按钮
# 使用JavaScript来显示隐藏按钮
button = driver.find_element(By.XPATH, '//*[@id="24441071"]/div/div[2]/div[2]')
driver.execute_script('arguments[0].style.display = "block";', button)
# 点击按钮
button.click()
# 停留2秒
time.sleep(2)
# 选择重命名
driver.find_element(By.XPATH, '//*[@id="24441071"]/div[2]/div/div/div/div[2]').click()
# 定位文件名输入框,清空原内容
el1 = driver.find_element(By.XPATH, '/html/body/div[7]/div[2]/div/div[1]/div/div[2]/div[2]/div[1]/div[1]/div/input')
el1.send_keys(Keys.CONTROL, "a") # 相当于ctrl + a快捷键全选
el1.send_keys(Keys.DELETE) # 快捷键删除
# 输入新的名字
el1.send_keys("重新编辑的名字")
# 点击确定,提交重命名
driver.find_element(By.XPATH, '/html/body/div[7]/div[2]/div/div[1]/div/div[2]/div[3]/div/lh-button[2]/button').click()