硒-2.37.0
Firefox 24.0(虽然也尝试过 Chrome)
Mac OS X 山狮 10.8.5
涉及 Windows、特定于 Windows 的自动化工具/库或 Mac OS X 以外的操作系统的解决方案是不可接受的答案
首先我要指出的是,Stackoverflow 上经常有人提出非常类似的问题,我已经检查了每个提供的答案,但没有一个适用于 CuteWebUI_Uploader_Resource AJAX 文件上传器,我将在下面详细说明。
我有一个包含数据和文件的企业 Java Web 应用程序,希望自动映射并上传该 Web 应用程序中选定的数据和文件子集(到)单独的 ASP.NET Web 应用程序,该应用程序使用 CuteWebUI 工具包和 CuteWebUI_Uploader_Resource来自可爱软件。
在撰写本文时,http://cutesoft.net服务器已关闭几天;谷歌搜索提供了一些 CuteSoft 论坛点击可能有助于解决此问题,但我目前无法访问它们。
与许多文件上传器一样,CuteWebUI AJAX 文件上传器有一个浏览按钮和一个上传按钮。
我希望能够直接上传到 CuteWebUI AJAX 文件上传器,而无需使用“浏览”按钮(并且无需使用 Mac OS X 上的“浏览”对话框玩任何花招,因为浏览器无法使用我希望上传的文件在本地文件系统上,而是存储在可通过 Java 访问 Java Web 应用程序的服务器上,尽管为了测试我可以将它们放在本地文件系统上,如下所示)。
我很高兴其他文件上传者已经多次回答了这个问题(请参阅本文末尾的详尽列表),并且通常描述为大多数文件上传者的解决方案的过程大致如下:
识别由浏览按钮填充的文件上传路径(有时隐藏)的输入字段。有时需要使用 JavascriptExecutor 取消隐藏它并确保它是一个文本字段,然后使用 sendKeys 填充它。
找到匹配的“提交”上传按钮并单击()。
这不适用于 CuteWebUI AJAX 文件上传器。
我所针对的系统确实有一个 INPUT 元素,从名称上看,它用于存储文件上传路径,但事实上,当我手动尝试它时(并使用 Firebug 和 Selenium IDE 检查它),它的值并未填充根本没有,而是出现一个全新的可上传文件临时表。
以下 HTML …
设置
我正在使用 Python 3.x 和 Selenium 在网店的后端工作。
我需要在平台后端从我的计算机上传产品图片。
问题
使用 Selenium 可以单击图像上传按钮,但是单击会导致 MacOS 文件选择器弹出。
Selenium 不适用于 MacOS 文件选择器。我已经搜索了如何解决这个问题并找到了以下答案,
但是,这些都不起作用。
按钮周围的 html 是,
<td class="control">
<div class="hide-input">
<input data-val="true" data-val-required="The Image field is required." id="FileName" name="FileName" type="text" value="File636578585362423712.png">
</div>
<div id="uploadifive-FileNameUpload" class="uploadifive-button" style="height: 18px; line-height: 18px; overflow: hidden; position: relative; text-align: center; width: 50px;">Upload<input id="FileNameUpload" type="file" name="FileNameUpload" data-editor="#FileName" data-url="http://also-inc.demohoster.com/upload/uploadfile" data-path="~/UserFiles/Products/Images/" data-maxsize="10240" data-extensions="*.jpg;*.jpeg;*.png;*.gif;*.bmp;" data-thumbnailwidth="128" data-thumbnailheight="128" data-thumbnailpath="/UserFiles/Products/Images/Preview/" data-uniquename="True" data-preview="/UserFiles/Products/Images/Preview/File636578585362423712.png" data-isnew="false" data-auth="2CDE59B99D5F034087CA006254189C31F4388BA02DDE1CD1752A2FCFDE6EB556406CAF9D82DE4E02AC4D7D9813E2CF8B2A1413EF7CE8CA22FDD9822130B4EC239F1BD305F8AA1E5F6E9EFD1CD64138B8A621A88A675A3A528B7DF2F0388C36C473CBAD080CF826A28A3464FB719D039690241E38" data-session="jx134u0kcaxfu4jz1darurvg" class="file-uploader hide-input" style="display: none;"><input type="file" style="font-size: 18px; opacity: …Run Code Online (Sandbox Code Playgroud)