很多人剛開始使用python+appium去執行APP自動化的時候經常會遇到webdriver.Remote,報錯位置指向都是driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub/',desired_caps)這行代碼
很容易誤導別人錯認為是自己的webdriver發生了錯誤,此時應該如何排查這個問題,以下將舉例說明
當發生以下錯誤的時候
Traceback (most recent call last):
File "E:\Workplace\app test\login_test.py", line 22, in <module>
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub/',desired_caps)
File "E:\Python27\lib\site-packages\appium\webdriver\webdriver.py", line 36, in __init__
super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)
查看的錯誤信息實際並非以上的信息,很有可能是程序最后報錯的信息,所以我們首要的任務需要對程序最后報錯的信息進行排查
案例一:JAVA環境沒有正常安裝布置(案例轉自網絡)
最后的提示:
在最后的提示上已經明確的指出實際出錯的錯誤,檢查自己JAVA程序和環境變量的配置
可以在cmd命令上進行JAVA -VERSION檢測環境是否正常(下圖就是正常的返回)
案例二:APK的路徑路徑設置錯誤
最后的錯誤提示:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: Bad app: C:\ContactManager.apk. App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name. cause: Error: Error locating the app: ENOENT, stat 'C:\ContactManager.apk')
簡單翻譯為:原來的錯誤:錯誤的應用:C:\ contactmanager.apk。應用程序的路徑必須是絕對的,或相對於Appium服務器安裝目錄,或一個URL壓縮文件,或一個特殊的應用程序名稱。原因:錯誤:錯誤定位的應用
解決方法:1、查看你的APK的路徑是否正確,最好使用絕對路徑
2、假若找不到解決方法且安裝功能非必要用例,可以使用adb shell install 應用包(包含路徑) 將APK安裝,去除安裝的設置代碼
大部分這種問題的錯誤居多都報錯在最后,英文水平較差的兄弟可以使用翻譯軟件翻譯大部分基本語言去理解,由於本人水平也有限,只是提供給大家找問題的一個方法,如有更好的方法可以在評論區留言討論
以下是網絡搜索結果的解決方法,為了方便讀者參考,我也一並轉載過來了
轉載地址:http://blog.csdn.net/rziqq/article/details/51161543
先檢查Appium server是否啟動:
address 127.0.0.1 port 4723 將會用於webdriver.remote構造函數的第一個參數,
可以在config.py中如下配置:
cf_appium_hub = 'http://127.0.0.1:4723/wd/hub'
BaseActions.app_driver = webdriver.Remote( command_executor=config.cf_appium_hub, desired_capabilities={ 'deviceName': config.cf_device_name, 'platformName': config.cf_platform_name, 'platformVersion': config.cf_platform_version, 'appPackage': app_package, 'appActivity': app_activity })