代码改变世界

python自动化上传文件

2022-08-17 11:26  HQS_blog  阅读(560)  评论(0)    收藏  举报

定位上传文件的按钮报错:selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

修改为执行js代码正常,如下:

elem_js = self._driver.find_element(*location)
self._driver.execute_script("arguments[0].click();", elem_js)

 

初始上传文件,报错AttributeError: 'NoneType' object has no attribute 'send_keys':

file_ele = self.find_exec_script(location, "arguments[0].click();")
# time.sleep(3)
# file_ele.send_keys(file_path)

 

上传文件的方法修改如下,可正常上传文件,(其中有一个问题是地址中包含空格则不能正常找到该地址,暂未解决,先更换为不带空格的地址)

import pywinauto
from pywinauto.keyboard import send_keys #导入send_keys库,实现模拟键盘操作

# 使用pywinauto来选择文件
app = pywinauto.Desktop()
# 选择文件上传的窗口
dlg = app["打开"]

# 选择文件地址输入框,点击激活
dlg["Toolbar3"].click()
# 键盘输入上传文件的路径
send_keys("D:\Backup\Documents\My Pictures")
# 键盘输入回车,打开该路径
send_keys("{VK_RETURN}")

# 选中文件名输入框,输入文件名
dlg["文件名(&N):Edit"].type_keys("97K鲜花.jpeg")

# 点击打开
dlg["打开(&O)"].click()