zs2*_*020 5 https webdriver watir-webdriver
我正在尝试使用WebDriver浏览https站点并使用WebDriver下载文件.当我这样做时,会弹出文件下载对话框.
WebDriver driver = new ChromeDriver();
driver.get("http://xxx/file1.txt");
Run Code Online (Sandbox Code Playgroud)
我想知道有没有办法在WebDriver中调用一个方法来使用常规https请求下载文件而不模拟点击?
提前致谢.
没有,至少没有任何方式适用于所有浏览器.您可以将某些浏览器(Firefox和Chrome)配置为在不提示的情况下将文件下载到指定位置.但是,对于像你所问的那样,你根本就不需要Selenium.任何程序化的HTTP客户端都可以.在Java中,我建议从Apache查看HttpClient; 在.NET中使用HttpWebRequest将完成工作.请注意,如果您要从中下载文件的站点需要身份验证,则可能需要在HTTP请求中指定自定义标头.
作为旁注,您可能想要重新评估您认为需要测试下载文件的原因,如果它不像在浏览器外执行HTTP请求那么简单.本文非常详细地讨论了这个问题,并提供了一个非常合理的论据,为什么测试下载文件是有问题的,而且往往是不必要的.
是的你可以.您需要设置自定义Chromedriver配置文件:
profile = Selenium::WebDriver::Chrome::Profile.new
profile['download.prompt_for_download'] = false
profile['download.default_directory'] = download_directory
Run Code Online (Sandbox Code Playgroud)
它不会提示任何对话框.我对如何设置下载目录更详细的解答,并验证该文件是任何给定大小的位置.
可在此处找到其他chromedriver开关:http://peter.sh/experiments/chromium-command-line-switches/
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |