Web 自动化使用 Python/Selenium 通过 Dojo FileUploader 上传文件
Web Automation using Python/Selenium to upload a file through Dojo FileUploader
一般来说,使用Selenium实现自动化上传文件很简单,解决方案也很多。
但是,
我面临的麻烦是实现 Web 自动化以通过 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
Selenium 只能与浏览器交互,当单击选择文件按钮时,它将打开文件资源管理器(在 OS 中)。
解决方法:您可以直接将文件路径传递给 selenium,而不是打开文件资源管理器弹出窗口,它可以自动上传。
例如:driver.findElementById().send_keys('filepath')
您还可以使用 PyWinAuto 与 windows.(https://pywinauto.readthedocs.io/en/latest/).
的文件浏览器交互
一般来说,使用Selenium实现自动化上传文件很简单,解决方案也很多。
但是, 我面临的麻烦是实现 Web 自动化以通过 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
Selenium 只能与浏览器交互,当单击选择文件按钮时,它将打开文件资源管理器(在 OS 中)。
解决方法:您可以直接将文件路径传递给 selenium,而不是打开文件资源管理器弹出窗口,它可以自动上传。 例如:driver.findElementById().send_keys('filepath')
您还可以使用 PyWinAuto 与 windows.(https://pywinauto.readthedocs.io/en/latest/).
的文件浏览器交互