我們正在構建混合本機應用程序(Cordova/Phonegap/Angular/Ionic)。使用量角器導航到Appium中混合本機應用程序的Url
我在量角器中編寫端到端測試。當在本地運行時,它們針對由Ionic模擬器(離子服務器)服務的應用程序執行。這工作正常。
我也想在Sauce Labs(Appium)託管的平臺模擬器上對'打包/構建'應用程序運行相同的測試。這幾乎可行。
我現在遇到的麻煩是導航到應用程序。當本地運行,在試驗開始時我會瀏覽到通過離子託管應用程序:
browser.get('http://localhost:8100')
這顯然在運行一個混合本機應用程序模擬器不起作用。我在測試啓動時檢查了瀏覽器的當前Url,它是:
file:///android_asset/www/index.html#/login
這是有道理的,是正確的。但如果我嘗試:
browser.get('file:///android_asset/www/index.html#/login')
不好的事情發生。
我找了兩個解決方案之一:
1)瞭解如何定位在模擬器網址混合本機應用程序運行
OR
2)不知何故有測試知道它在混合原生Cordova容器中運行並跳過導航到起始頁面(因爲應用程序由appium自動加載)。
謝謝。
如果你想瀏覽一個'file://'協議,看看這個Q/A - [用量角器打開一個文件](http://stackoverflow.com/questions/24824491/opening-a -file與 - 量角器)。另外還有一個[移動設置]的量角器指南(https://github.com/angular/protractor/blob/master/docs/mobile-setup.md),其中有很多關於使用Appium設置量角器的信息。要識別模擬器,你可以實現一個方法'isCordova',它可以檢查User Agent或者使用[cordova-plugin-device](https://github.com/apache/cordova-plugin-device)來判斷當前的env是否是「移動「環境。 –
如果您試圖在兩個完全不同的環境中運行相同的測試,可能值得擁有兩個配置不同的Protractor配置。 –
謝謝@MichaelRadionov。我已經在使用單獨的量角器配置 - 當然需要通過離子模擬器設置Sauce/Appium vs本地服務器的憑證和功能。據我所知,移動設置適用於在「普通」移動瀏覽器中驅動應用程序 - 即:Chrome - 而不是測試混合原生應用程序。您指出的鏈接看起來非常有幫助。我會看看他們以後有沒有幫助。 –