【问题标题】:How to download a file with Selenium when it's imposible to use WebDrivers with GUI?当无法将 WebDriver 与 GUI 一起使用时,如何使用 Selenium 下载文件?
【发布时间】:2017-05-10 11:08:28
【问题描述】:

我需要使用 Selenium 下载 pdf 文件。单击按钮时会下载此 pdf 文件。文件的 URL 不可访问,按钮提交表单,服务器直接响应文件(没有确认对话框)。

我正在使用 PhantomJS WebDriver(该项目使用 C#),因为该应用程序将是一个 Azure webapp,所以我不能使用 ChromeDriver 或类似的。问题是 PhantomJS 无法处理二进制文件,所以当我模拟按钮中的单击时,应用程序不会下载任何内容。

有什么想法吗??

P.D:Selenium 不仅用于 pdf 下载,该项目还大量使用它。

【问题讨论】:

  • 您不必与文件本身进行交互,只需按钮即可;所以你只需要点击..我是对的吗?您可以使用自定义 waitAndClick() 方法等待元素可见、可点击,然后使用 Actions 类聚焦元素并点击它
  • 可能我表达的不是很好……点击按钮时,开始下载(例如我使用ChromeDriver时)。但是当使用 PhantomJS“点击”按钮时什么也没有发生。
  • 好的,你可以尝试使用 selenium 的 JavascriptExceutor 来点击按钮元素
  • 感谢 cmets。问题是当 Selenium 单击按钮时(使用 PhantomJS)什么也没有发生,因为它无法处理二进制文件,所以它不会下载文件。
  • 可以,但是可以点击开始下载的按钮

标签: c# azure selenium phantomjs


【解决方案1】:

如果您使用 Azure 并且无法找到任何解决方案,我建议您使用具有图形界面的虚拟机,以便您可以运行 ChromeDrive 实例(或另一个实例)。

【讨论】:

  • 我可能会使用正在开发的 PhantomJs 的一个分支,称为 YorksitoJS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 2017-08-26
  • 2018-04-14
相关资源
最近更新 更多