浅_郁 2021-12-07 08:53 采纳率: 85.7%
浏览 59

selenium headless无法上传文件

问题遇到的现象和发生背景

selenium 在不加 headless 的时候可正常上传文件,加上 headless 之后无法运行

问题相关代码,请勿粘贴截图

app = pywinauto.Desktop()
dlg = app["打开"]
driver.implicitly_wait(10)

选择文件地址输入框,点击激活

dlg["Toolbar3"].click()
driver.implicitly_wait(10)

键盘输入上传文件的路径

send_keys("D:\附件下载")
sleep(1)

键盘输入回车,打开该路径

send_keys("{VK_RETURN}")
driver.implicitly_wait(10)

选中文件名输入框,输入文件名

dlg["文件名(&N):Edit"].type_keys("配送地址.xlsx")

点击打开

driver.implicitly_wait(10)
dlg["打开(&O)"].click_input()

Traceback (most recent call last):
File "D:\金投云链\venv\lib\site-packages\pywinauto\application.py", line 258, in __resolve_control
criteria)
File "D:\金投云链\venv\lib\site-packages\pywinauto\timings.py", line 458, in wait_until_passes
raise err
pywinauto.timings.TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:/金投云链/转脚本测试/TEts.py", line 206, in
dlg["Toolbar3"].click()
File "D:\金投云链\venv\lib\site-packages\pywinauto\application.py", line 379, in getattribute
ctrls = self.__resolve_control(self.criteria)
File "D:\金投云链\venv\lib\site-packages\pywinauto\application.py", line 261, in __resolve_control
raise e.original_exception
File "D:\金投云链\venv\lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes
func_val = func(*args, **kwargs)
File "D:\金投云链\venv\lib\site-packages\pywinauto\application.py", line 203, in __get_ctrl
dialog = self.backend.generic_wrapper_class(findwindows.find_element(**criteria[0]))
File "D:\金投云链\venv\lib\site-packages\pywinauto\findwindows.py", line 84, in find_element
elements = find_elements(**kwargs)
File "D:\金投云链\venv\lib\site-packages\pywinauto\findwindows.py", line 305, in find_elements
elements = findbestmatch.find_best_control_matches(best_match, wrapped_elems)
File "D:\金投云链\venv\lib\site-packages\pywinauto\findbestmatch.py", line 536, in find_best_control_matches
raise MatchError(items = name_control_map.keys(), tofind = search_text)
pywinauto.findbestmatch.MatchError: Could not find '打开' in 'dict_keys(['QQTXGuiFoundation', 'QQ', 'TXGuiFoundation', '金投云链 – TEts.py PyCharmCXWindow', 'CXWindow', 'XTaskBarBtn', '金投云链 – TEts.py PyCharmXTaskBarBtn', '金投云链 – TEts.py PyCharmShell_TrayWnd', 'Shell_TrayWnd', 'SunAwtWindow', '测试沟通群等3个会话SunAwtWindow', '金投云链 – TEts.py PyCharm', 'SunAwtFrame', '金投云链 – TEts.py PyCharmSunAwtFrame', 'TXGuiFoundation0', 'TXGuiFoundation1', 'TXGuiFoundation2', '测试沟通群等3个会话TXGuiFoundation', '测试沟通群等3个会话', 'Chrome_WidgetWin_1', '(14条消息) Selenium 如何使用webdriver下载文件(chrome浏览器)_breakhl的博客-CSDN博客_webdriver下载文件 - Google Chrome', '(14条消息) Selenium 如何使用webdriver下载文件(chrome浏览器)_breakhl的博客-CSDN博客_webdriver下载文件 - Google ChromeChrome_WidgetWin_1', 'popupshadow', '微信popupshadow', '微信', 'WeChatMainWndForPC', '微信WeChatMainWndForPC', 'DummyDWMListenerWindow', 'EdgeUiInputTopWndClass', 'Internet Explorer_Hidden', 'FLUTTER_RUNNER_WIN32_WINDOW', '小牛 VPN', '小牛 VPNFLUTTER_RUNNER_WIN32_WINDOW', 'Program ManagerProgman', 'Progman', 'Program Manager', '微信SoPY_Status', 'SoPY_Status'])'

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

静默上传文件

  • 写回答

1条回答 默认 最新

  • CSDN专家-黄老师 2021-12-07 09:01
    关注

    headless 会限制部分代码,你只能最小化窗口

    评论

报告相同问题?

问题事件

  • 创建了问题 12月7日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错