需要与以无头模式在Selenium脚本中上载文件逻辑有关的输入。
实现了Robot类来模拟键盘命令,但仅在非无头模式下有效。

这是上传按钮的外观:

java - Selenium(Java)-无头Chrome-无法上传文件-LMLPHP

单击上传继续,将显示一个弹出窗口按钮。在无头模式下,单击“上传简历”按钮后,没有弹出窗口(如屏幕截图所示)。

上载按钮周围的页面来源:



<div class="resume_upload_block">
<div id="resumeFile" class="controls-dz dropzone dz-clickable registration_groupl resume_drag_drop">
<div class="dz-default dz-message">
<div class="fa fa-upload"></div>
<label for="file-upload" class="custom-file-upload" title="Upload Resume">
<input type="text" name="resume" id="resume" value="" placeholder="Browse *" style=""/>
</label>
</div>
<div class="clearfix">
</div>
</div>
</div>





研究了诸如AutoIT和Sikuli工具之类的选项。这些选项均未提供有关如何在无头模式下运行的信息。

最佳答案

对不起,我迟到了。经过一番搜索,我发现实际文件输入不在“上载”按钮下。这是代码:

WebElement inputResume = webDriver.findElement(By.className("dz-hidden-input"));
inputResume.sendKeys("/full/path/to/your/file"); // For example: /home/minhdao/Downloads/resume.pdf


我还创建了一个gist。如果您想要一个无需配置即可执行的完整项目,请随时发表评论。

07-27 14:05