练习笔记
# 导入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()