Appium移動端自動化測試-常見error解決方法
1:Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"]
解決方法:https://blog.csdn.net/u012106209/article/details/77012141
2:UiAutomator quit before it successfully launched) (WARNING: The server did not provide any stacktrace information
原因:UiAutomator手機端的埠被佔用
解決方法:第一步 刪除AppiumBootstrap.jar 位置 /data/local/tmp/
第二步 重啟手機 再次啟動Appium 啟動指令碼
3:A new session could not be created. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 24.31 second
解決方法:重啟手機 Appium
4:elenium.SessionNotCreatedException: A new session could not be created. (Original error: Remote install failed: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]) (WARNING: The server did not provide any stacktrace information)
解決方法:
第一步:開啟USB安裝
第二步:執行指令碼的時候 如果是第一次使用Appium安裝APP 需要先安裝下列兩個APP (執行指令碼後 根據手機提示進行即可)
5:指令碼啟動正常 元素也都有定位到 執行了click的操作 但是APP卻沒有對應的跳轉
解決方法:參考下圖 需要在"開發者選項"中把“USB除錯”開啟
再次執行程式碼 可以執行
package com.AutoAPP.APP; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.android.AndroidElement; import io.appium.java_client.remote.MobileCapabilityType; import java.net.URL; import org.openqa.selenium.remote.DesiredCapabilities; public class AppTest { public static AndroidDriver<AndroidElement> initDriver(String appPackage,String appActivity) throws Exception{ DesiredCapabilities caps=new DesiredCapabilities(); // caps.setCapability(MobileCapabilityType.DEVICE_NAME, "anything"); caps.setCapability("appPackage", appPackage); //要啟動的應用的起始activity caps.setCapability("appActivity", appActivity); //resetKeyBoard是執行完測試後將裝置的輸入法重置回原有的輸入法 caps.setCapability("unicodeKeyBoard", true); caps.setCapability("resetKeyBoard", true); //不對app進行重簽名,因為有的app在重簽名之後無法使用 caps.setCapability("noSign", true); //設定session的超時時間 caps.setCapability("newCommandTimeout", 600); caps.setCapability("udid", "2be8daaa9805"); //http://127.0.0.1:4723/wd/hub 為Appium的URL連線 return new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), caps); } public static void main(String[] args) throws Exception { // TODO Auto-generated method stub AndroidDriver<AndroidElement> driver = initDriver("net.csdn.csdnplus","net.csdn.csdnplus.activity.SplashActivity"); Thread.sleep(10000); driver.findElementByName("我的").click(); } }