【问题标题】:Web Automation using Python/Selenium to upload a file through Dojo FileUploaderWeb Automation 使用 Python/Selenium 通过 Dojo FileUploader 上传文件
【发布时间】:2021-02-21 16:00:06
【问题描述】:

一般来说,使用 Selenium 上传文件很容易实现自动化,并且有很多解决方案。

但是, 我面临的麻烦是实现网络自动化以通过 Dojo FileUploader 上传文件。

    <div class="ux uploader dnd fluid webDriver_uploader enforce-validity-marker-class mtc-uploader" data-dojo-attach-event="click:_onClickDomNode,drop:_onDropDomNode,dragover:_onDragOverDomNode,dragleave:_onDragLeaveDomNode,mouseenter:_onMouseEnterDomNode,mouseleave:_onMouseLeaveDomNode" id="Uploader_0" lang="en" widgetid="Uploader_0">
      <i class="upload icon" data-dojo-attach-point="iconNode"></i>
      <input type="file" name="">
      <button type="button" class="ux button" data-dojo-attach-point="browseButtonNode" data-dojo-attach-event="blur:_onBlurBrowseButtonNode,click:_onClickBrowseButtonNode,focus:_onFocusBrowseButtonNode">Choose File
      </button>
      <button type="button" class="ux basic icon button hidden" data-dojo-attach-point="removeButtonNode" data-dojo-attach-event="click:_onClickRemoveButtonNode" title="Remove File">
        <i class="trash icon">
          <span class="description">Remove
          </span>
        </i>
      </button>
      <div class="placeholder label" data-dojo-attach-point="labelNode" data-dojo-attach-event="click:_onClickLabelNode">or drag and drop here
      </div>
    </div>

单击“选择文件”按钮后,我尝试控制文件打开对话框。但似乎 selenium 和文件打开对话框之间无法交互。

我正在开发 Ubuntu 18.04

【问题讨论】:

    标签: python selenium automation


    【解决方案1】:

    Selenium 只能与浏览器交互,当单击选择文件按钮时,它将打开文件资源管理器(在操作系统中)。

    解决方法:您可以直接将文件路径传递给 selenium,而不是打开文件资源管理器弹出窗口,它可以自动上传。 例如:driver.findElementById().send_keys('filepath')

    您也可以使用 PyWinAuto 与 windows 的文件资源管理器进行交互。(https://pywinauto.readthedocs.io/en/latest/)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-09
      • 2021-01-12
      • 2018-03-09
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多