web自动化中,mac系统怎么上传非input标签的图片

mac不能使用AutoIt,标签也不是input,这种情况下怎么实现上传图片的功能?求大佬解答!

用组合键去实现

贴下网站和对应的界面结构,理论上直接对input进行sendkeys就可以搞定

好的,我明天贴下源码


    def get_upload(self,locator,file_path):
        """
        上传文件
        :param locator:上传文件的定位页面
        :param file_path: 文件上传的路径
        :return:
        """
        self.driver.find_element(*locator).click()
        time.sleep(2)           #需要稍作等待,因为点击上传按钮到文件选择窗口打开会有延迟
        app = application.Application() #实例化Application
        #这里用的class而没有加窗口title,主要为保证兼容性
        app.connect(class_name = '#32770')#根据class_name找到弹出窗口
        app["Dialog"]["Editl"].type_keys(file_path)
        app["Dialog"]["Buttonl"].click()

这个操作是针对window系统的

好的大佬,我试试

用例执行成功了,也上传了,但是这个页面不能自己关掉。。。

这个方法是针对window系统的。

    self.driver.get("file:///Volumes/Untitled/PycharmProjects/webproject/web_05dom/iframe_demo.html")
        action = ActionChains(self.driver)
        e= self.driver.find_element_by_name("mfile")
        action.click(e).perform()
        """
        最好在python3.7版本安装,别的版本会有坑,按照顺序导入
        pip install pillow==6.2.2
        pip install pyautogui
        #处理中文的路径
        pip install pyperclip----用于处理剪切板的第三方库
        """
        # #发送数据
        import pyautogui as ui
        sleep(2)
        ui.write(r"/Users/huihuilina/Desktop/shuju.txt")
        sleep(2)
        ui.press("enter",presses=2)
        sleep(4)
        #处理中文路径文件
        import pyperclip
        pyperclip.copy("文件路径")
        sleep(2)
        ui.hotkey('ctrl','v')
        ui.press("enter",presses=2)
        sleep(4)
1 个赞

大佬这个是用复制粘贴的方法上传吗,但是我这边手动操作复制粘贴是不行的,我拿这个先试下吧,我感觉有点悬啊

如果要是有中文路径需要复制粘贴