2015-10-02 25 views
1

我使用Selenium WebDriver自动从几个在线视频转换网站下载视频。在网页上获取错误后重新运行脚本

基本上,所有用户所要做的就是输入YouTube视频的网址,该程序将运行脚本为您下载视频。

一切运行非常顺利,但问题是当网站无法转换视频。

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

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

回答

1

由于您不是使用Selenium作为您的测试引擎,而是作为网页抓取工具 - 恕我直言,这实际上是您的工作流程处理此类状态的问题。这可能是Defensive programming的一个特例,但仍可以设计它来处理这种情况。

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

一旦你发现这样的错误信息(通过硒的功能)

当网站没有视频

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

对于设计,我会用的

  • Command混合物,以取得用户请求的护理/响应
  • Observer通知我要改变
  • State为改变行为,当下载处理内部状态变化