【发布时间】:2020-04-16 10:13:07
【问题描述】:
需要一个与在无头模式下在 Selenium 脚本中上传文件逻辑相关的输入。 实现了机器人类来模拟键盘命令,但它只在非无头模式下工作。
上传按钮的外观如下:
单击上传简历会显示一个弹出窗口按钮。在无头模式下点击“上传简历”按钮后,没有弹出窗口(截图)。
上传按钮周围的页面来源:
<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 工具等选项。没有一个选项提供有关如何在无头模式下运行的信息。
【问题讨论】:
-
你试过
webDriver.findElement(By.id("resume")).sendKeys("your/path/to/file")吗? -
是的@MinhDao,我也尝试过这个选项。
org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of [[ChromeDriver: chrome on XP (dc9bdf7867a80d2afa276eeedfe3c6d9)] -> id: resume] (tried for 15 second(s) with 500 milliseconds interval) -
您似乎正在使用 WebDriverWait 来检查该输入是否可见。但您可能想在 DevTool 中检查(FireFox 或 Chrome 中的 F12)。我在想你的
Upload resume按钮实际上不是 HTML 输入,真正的输入是从视图中隐藏的,这就是你得到TimeoutException的原因。你能提供你的链接让我看看吗? -
@MinhDao: Click here 点击应用 --> 新用户 --> 你会看到上传按钮。
-
我还没有解决,所以我需要更多的时间来投资。但我发现了这个:Upload file with selenium IDE to Dropzone JS。希望这会对你有所帮助。
标签: java selenium file-upload headless-browser