0


mac selenium 通过控制系统辅助功能上传文件

记录一下在做自动化测试时,遇到的问题

因为官方的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_ 所有, 如有侵权,请联系我们删除。

“mac selenium 通过控制系统辅助功能上传文件”的评论:

还没有评论