记录一下在做自动化测试时,遇到的问题
因为官方的send_keys 方法,不适用所有的场景。以下代码通过mac 的辅助功能 进行上传文件。
import pyperclip
from pykeyboard import PyKeyboard
from pymouse import PyMouse
import time
"""
locator:元素定位
page_action:页面操作动作
file:文件路径
"""
def send_pictures(locator, page_action, file):
def _is_chinese(file):
# 判断文件名称中是否包含中文,官方库要求必须文件路径为英文,否则会抛异常,所以单独加了一层判断
for ch in file:
if u'\u4e00' <= ch <= u'\u9fff':
return True
return False
if _is_chinese(file) is False:
try:
# 调用封装好的点击元素按钮
Basepage.click_element(locator, page_action)
k = PyKeyboard()
m = PyMouse()
filepath = '/'
k.press_keys(['Command', 'Shift', 'G'])
# 获取当前屏幕尺寸
x_dim, y_dim = m.screen_size()
m.click(x_dim // 2, y_dim // 2, 1)
# 复制文件路径开头的斜杠/,如果不加斜杠的话,脚本会缺少头部的斜杠
pyperclip.copy(filepath)
# 粘贴斜杠/
k.press_keys(['Command', 'V'])
# 输入文件全路径进去
k.type_string(file)
time.sleep(2)
# 按两次回车键,每次间隔2s
k.tap_key('Return', n=2, interval=2)
except:
# 自己封装的日志模块截图
logger.exception(page_action)
logger.get_page_img("上传图片失败,路径{}!".format(file))
else:
logger.info("文件路径中不允许包含中文字符!请修改文件命名。文件路径:{0}".format(file))
本文转载自: https://blog.csdn.net/yuzhihao_/article/details/126979112
版权归原作者 yuzhihao_ 所有, 如有侵权,请联系我们删除。
版权归原作者 yuzhihao_ 所有, 如有侵权,请联系我们删除。