[Appium][Issue] iOS 實機擷圖經常遇到 Timed Out 的錯誤

擷取畫面的動作,在 iOS 上偶爾會出現 timed out 的問題。

Appium 1.2.0 + iOS 7.1
WebDriverException: Message: u"An unknown server-side error occurred while processing the command. (Original error: Timed out waiting for screenshot file. Error: ENOENT, open '/tmp/appium-instruments/Run 1/screenshot6450a989-1854-4469-8116-ee4e6ae56183.png')"

這個問題最近一次回報是 #3130 (2014-07-14),最後決定用 retry 的方式來解 (3eb3914),因為拉長 timeout 時間並沒有幫助。

要注意的是,新的機制最多也只 retry 三次,所以程式還是得做好 error handling,畢竟多數時候擷圖都是為了後續 debugging 之用,絕不能因為擷圖失敗而將最初的錯誤吞掉。

try:
    do_some_test()
catch Exception, err:
    # try to take a screenshot for troubleshooting.
    try:
        log_screenshot(driver.get_screenshot_as_png())          # 1
    except Exception:
        log.warning('Fail to take screenshot.', exc_info=True)  # 1
    finally:
        raise err # 2
1 發生錯誤時,"儘可能" 把畫面拍下來,如果不行就把問題 log 下來 (warning)。
2 最後,無論如何都最初遇到的 exception 往外丟。(丟出擷圖失敗的 exception 沒有意義)

參考資料

文件
廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s