python自学笔记(UI自动化)

本文记录了一次使用Selenium进行自动化测试的过程,涉及登录Tinyshop、填写Bug详情并上传附件。重点展示了如何通过鼠标操作模拟用户行为和填写Bug报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习笔记

# 导入os
import os
# 导入pyautogui用来上传文件
import pyautogui
# 导入时间包
from time import sleep
# 新元素识别方法导入By包
from selenium.webdriver.common.by import By
# 导入新的浏览器驱动
from webdriver_helper import get_webdriver
# 键盘操作
from selenium.webdriver.common.keys import Keys
# 鼠标操作
from selenium.webdriver import ActionChains
# 导入config变量包需要用到的变量,例如:用户账号、密码、URL地址等(需自己创建common包和config.py文件,并在config中设置变量名)
from common.config import username, password, URl_Online
# 配置变量
curses_path = os.path.dirname(__file__)
# 配置驱动路径
driver_path = curses_path + "./webdriver/chromedriver.exe"
# 设置驱动变量
driver = get_webdriver()
# 最大化窗口
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(60)
# 固定等待
sleep(0.5)
# 打开网页
driver.get(URl_Online)# 引用URL地址
sleep(0.5)
# 点击开源版进入登录窗口
driver.find_element_by_xpath('//*[@id="zentao"]').click()
sleep(1)
# 输入账号
driver.find_element_by_xpath('//*[@id="account"]').send_keys(username)# 引用用户账号
sleep(0.5)
# 输入密码
driver.find_element_by_xpath('//*[@id="loginPanel"]/div/div[2]/form/table/tbody/tr[2]/td/input').send_keys(password)# 引用用户密码
sleep(0.5)
# 点击登录
driver.find_element_by_xpath('//*[@id="submit"]').click()
sleep(1)
# 点击测试
driver.find_element_by_xpath('//*[@id="menuMainNav"]/li[6]/a').click()
sleep(0.5)
# 切换至测试框架中
driver.switch_to.frame('appIframe-qa')
# 点击BUG
driver.find_element_by_xpath('//*[@id="navbar"]/ul/li[3]').click()
sleep(0.5)
# 选择环境
driver.find_element_by_xpath('//*[@id="currentItem"]').click()
sleep(0.5)
# 选择测试环境
driver.find_element_by_xpath('//*[@id="other"]/ul/li[2]/ul/li[2]/a').click()
sleep(0.5)
# 点击提BUG
driver.find_element_by_xpath('//*[@id="mainMenu"]/div[3]/div[2]/a').click()
sleep(0.5)
# 点击所属模块
driver.find_element_by_xpath('//*[@id="module_chosen"]/a/span').click()
sleep(0.5)
# 选择BUG所处模块
driver.find_element_by_xpath('//*[@id="module_chosen"]/div/ul/li[8]').click()# 选择模块
sleep(0.5)
# 点击影响版本
driver.find_element_by_xpath('//*[@id="openedBuild_chosen"]/ul').click()
sleep(0.5)
# 选择版本
driver.find_element_by_xpath('//*[@id="openedBuild_chosen"]/div/ul/li[1]').click()
sleep(0.5)
# 点击加载所有用户
driver.find_element_by_xpath('//*[@id="dataform"]/table/tbody/tr[3]/td[1]/div/span/button').click()
sleep(0.5)
# 点击当前指派
driver.find_element_by_xpath('//*[@id="assignedTo_chosen"]/a/div[1]').click()
sleep(0.5)
# 选择指派人员
# driver.on_click('xpath', '//*[@id="assignedTo_chosen"]/div/ul/li[6]').click()# 选择许志掀
# driver.wait(0.5)
driver.find_element_by_xpath('//*[@id="assignedTo_chosen"]/div/ul/li[4]').click()# 选择涂池
sleep(0.5)
# 输入BUG标题
driver.find_element_by_xpath('//*[@id="title"]').send_keys('111111')
sleep(0.5)
# 切换下一级框架
frame_element = driver.find_element_by_xpath('//iframe[@class="ke-edit-iframe"]')
driver.switch_to.frame(frame_element)
# 配置鼠标操作
element = driver.find_element_by_xpath('//body')
keyboard = ActionChains(driver)
# 利用鼠标编写操作步骤,实际结果,预期结果,
# 99-103为复现步骤
# 106为实际结果
# 109为预期结果
# 如有多行预期结果或实际结果,请复制第100行101行,第110行的“perform()”一定要放在鼠标操作的最后面,注意缩进,每一行后面的"\"一定要注意添加
keyboard.click( element ).pause(1).send_keys(Keys.ARROW_UP*3).\
    pause(1).send_keys('1、打开tinyshop').\
    pause(1).send_keys(Keys.ENTER).\
    pause(1).send_keys('2、输入用户名admin,密码123456').\
    pause(1).send_keys(Keys.ENTER).\
    pause(1).send_keys('3、点击登录按钮').\
    pause(1).send_keys(Keys.ARROW_RIGHT*3).\
    pause(1).send_keys(Keys.ARROW_DOWN).\
    pause(1).send_keys('登录失败,详情见附件图片').\
    pause(1).send_keys(Keys.ARROW_RIGHT*3).\
    pause(1).send_keys(Keys.ARROW_DOWN).\
    pause(1).send_keys('登陆成功').\
    perform()
# 返回上一层框架
driver.switch_to.parent_frame()
sleep(0.5)
# 上传附件图片、视频
driver.find_element_by_xpath('//*[@id="dataform"]/table/tbody/tr[9]/td/div/div/div[1]/button').click()
sleep(2)
# 上传文件路径中不能有中文字符出现
pyautogui.write(r'E:\07_tupian\1.jpg')
sleep(3)
# 点击确定上传文件
pyautogui.press('enter', 2)
sleep(3)
# 返回最外层框架
driver.switch_to.default_content()
sleep(0.5)
# 切换至测试框架中
driver.switch_to.frame('appIframe-qa')
# 点击保存
# driver.find_element_by_xpath('/html/body/main/div/div/div/form/table/tfoot/tr/td/button').click()
sleep(10)
driver.quit()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值