1. 程式人生 > >Appium移動端自動化測試-常見error解決方法

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();
				
	}

}