在网页上获取错误时重新运行脚本

时间:2015-10-02 03:49:13

标签: java selenium selenium-webdriver

我正在使用Selenium WebDriver自动从几个在线视频转换网站下载视频。

基本上,用户只需输入YouTube视频的网址,程序就会运行脚本为您下载视频。

一切都运行得很顺利,但问题是网站无法转换视频。

例如,clipconverter.cc有时会抛出“无法从YouTube获取视频信息”错误,但是当您再次尝试时它会起作用。 我已经做了一些错误检查,如果缺少元素,程序将停止运行脚本,但在上面提到的示例中,我想再次重新运行脚本。

实现这一目标的可能方法是什么?我是否必须重新创建错误页面并获取其中的元素?

1 个答案:

答案 0 :(得分:1)

既然你没有使用Selenium作为你的测试引擎,而是作为一个网络刮板 - 恕我直言,这实际上是你处理这些状态的工作流程的问题。这可能是Defensive programming的一个极端情况,但仍然可以设计它来处理这些情况何时/如果它们发生。

  

实现这一目标的可能方法是什么?我是否必须重新创建错误页面并获取其中的元素?

一旦检测到此类错误消息(通过Selenium的功能)

  

当网站无法转换视频时

你可以调用处理第一个请求的同一段代码,但这次只传递你已经拥有的参数(videoURL,用户等)。如果您重新尝试并且此站点仍然失败,您可以要求另一个站点执行下载(作为failover scenario)。

对于设计,我会使用

的混合物
  • Command负责处理用户请求/回复
  • Observer通知我这些更改
  • State用于在下载过程内部状态更改时更改行为