MacOS系统下python实现自动上传文件操作

 

# coding: utf-8
import time
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

from pykeyboard import PyKeyboard
from pymouse import PyMouse
import pyperclip
import os


"""
文件上传操作
    1、支持直接输入(input标签类型)
    2、不可以直接输入,只能选择(非inPut标签类型)
MAC引入python第三方库:
    1、pip install PyUserInput
    2、pip install pyperclip
Windows引入python第三方库
	1、pip install pywin32
"""

#集成jenkins时使用
def get_file_path(filepath):
    #获取上一级路径
    up_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
    add_path = os.path.join(up_path, filepath)
    return add_path


def upload_file(file):
    #创建鼠标对象
    k = PyKeyboard()
    m = PyMouse()
    filepath = "/"
    #模拟快捷健Conmand+shift+G
    time.sleep(3)
    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"])
    time.sleep(2)
    #输入文件全路径进去
    k.type_string(file)
    time.sleep(2)
    k.press_key("Return")
    time.sleep(2)
    k.press_key("Return")
    time.sleep(3)



driver = webdriver.Chrome()
driver.get("https://tinypng.com/")
driver.find_element(By.CSS_SELECTOR, ".icon").click()

#上传文件
upload_file("/Users/zhangsan/Downloads/re.png")

注意点:

  1. 当前输入法为中文时,输入路径为下图,导致输入后找不到文件夹,切换英文后正常

     2. MAC设置--安全与隐私--辅助功能--隐私,打开以下图片中应用程序并勾选上,才能正常控制

posted @ 2021-12-01 15:15  美女爱找茬  阅读(380)  评论(0编辑  收藏  举报