2015-10-02 45 views
1

我使用Selenium WebDriver自動從幾個在線視頻轉換網站下載視頻。在網頁上獲取錯誤後重新運行腳本

基本上,所有用戶所要做的就是輸入YouTube視頻的網址,該程序將運行腳本爲您下載視頻。

一切運行非常順利,但問題是當網站無法轉換視頻。

例如,clipconverter.cc有時會拋出「無法從YouTube獲取視頻信息」錯誤,但它在您再次嘗試時有效。 我做了一些錯誤檢查,如果有缺少的元素,程序將停止運行腳本,但在上面提到的示例中,我想重新運行該腳本。

實現此目的的可能方法是什麼?我是否必須重新創建錯誤頁面並獲取其中的元素?

回答

1

由於您不是使用Selenium作爲您的測試引擎,而是作爲網頁抓取工具 - 恕我直言,這實際上是您的工作流程處理此類狀態的問題。這可能是Defensive programming的一個特例,但仍可以設計它來處理這種情況。

實現此目的的可能方法是什麼?我是否必須重新創建錯誤頁面並獲取其中的元素?

一旦你發現這樣的錯誤信息(通過硒的功能)

當網站沒有視頻

可以調用同一段代碼,處理的第一個轉換請求,但這次只需傳遞您已有的參數(videoURL,用戶等)。如果您重新嘗試並且該網站仍然失敗,則可以要求另一個網站進行下載(作爲failover scenario)。

對於設計,我會用的

  • Command混合物,以取得用戶請求的護理/響應
  • Observer通知我要改變
  • State爲改變行爲,當下載處理內部狀態變化