【发布时间】:2017-07-15 20:58:59
【问题描述】:
Windows 7 Appium:1.4.16.1 Android 虚拟设备管理器中的模拟器 Android
APPIUM REST 响应:
感谢您告诉我。如果您认为可能是源头原因。
来自 ECLIPSE 的代码:
'import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.ios.IOSElement;
import io.appium.java_client.remote.MobileBrowserType;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.BrowserType;
import java.util.concurrent.TimeUnit;
//WebDriver driver;
public class AA_Android1
@Test
public void test1() throws MalformedURLException, InterruptedException{
DesiredCapabilities capabilities = new DesiredCapabilities();
File app = new File("C:/Users/dd/Downloads/com.google.android.gm.4.5.apk");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"emulator- 5554");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "BROWSER");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "6.0");
capabilities.setCapability("appPackage", "com.android.browser");
capabilities.setCapability("appActivity","com.android.browser.BrowserActivity");
capabilities.setCapability("browserName", MobileBrowserType.BROWSER);
WebDriver driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities );//error?
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);'
APPIUM 日志: '> 使用命令启动 Appium 服务器:C:\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --browser-name Chrome --session-override --platform-name Android --platform-version 23 --automation-name Appium --device-name "emulator-5554" --log-no-color
信息:欢迎使用 Appium v1.4.16(修订版 ae6877eff263066b26328d457bd285c0cc62430d) 信息:Appium REST http 接口监听器开始于 127.0.0.1:4723 信息:[调试]非默认服务器参数:{“address”:“127.0.0.1”,“sessionOverride”:true,“logNoColors”:true,“deviceName”:“emulator-5554”,“platformName”:“Android ","platformVersion":"23","automationName":"Appium","browserName":"Chrome"} 信息:控制台日志级别:调试 info: --> POST /wd/hub/session {"capabilities":{"desiredCapabilities":{"appPackage":"com.android.browser","appActivity":"com.android.browser.BrowserActivity"," platformVersion":"6.0","browserName":"Browser","platformName":"Android","deviceName":"emulator-5554"},"requiredCapabilities":{}},"desiredCapabilities":{"appPackage" :"com.android.browser","appActivity":"com.android.browser.BrowserActivity","platformVersion":"6.0","browserName":"Browser","platformName":"Android","deviceName" :"emulator-5554"},"requiredCapabilities":{}} 信息:客户端用户代理字符串:Apache-HttpClient/4.5.2 (Java/1.8.0_121) 信息:设置模式:直接代理到 Chromedriver 信息:[调试] 看起来我们想要在 android 上使用 chrome 信息:[调试] 创建新的 appium 会话 6f152533-ef46-4327-9543-c62fb07906ad info: [debug] 检查 adb 是否存在 信息:[调试] 使用 C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe 中的 adb 信息:[调试] 使用快速重置?真的 信息:[调试] 为会话准备设备 信息:[调试]不检查应用程序是否存在,因为我们假设它已经在设备上 信息:检索设备 信息:[调试] 尝试查找已连接的 android 设备 信息:[调试]正在连接设备... 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe 设备 信息:[调试] 1 个设备已连接 信息:找到设备模拟器-5554 信息:[调试] 将设备 ID 设置为 emulator-5554 信息:[调试] 等待设备准备好并响应 shell 命令(超时 = 5) 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 wait-for-device 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell "echo 'ready'" 信息:[调试] 启动 logcat 捕获 信息:[调试]将解锁帮助应用程序推送到设备... 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 install "C:\Appium\node_modules\appium\build\unlock_apk\ unlock_apk-debug.apk" 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell "dumpsys window" 信息:[调试] 屏幕已解锁,继续。 信息:[调试] 转发系统:4724 到设备:4724 info: [debug] 执行 cmd: C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 forward tcp:4724 tcp:4724 信息:[调试] 将 appium 引导程序推送到设备... 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 push "C:\Appium\node_modules\appium\build\android_bootstrap\ AppiumBootstrap.jar" /data/local/tmp/ 信息:启动应用程序 信息:[调试] 试图杀死所有“uiautomator”进程 信息:[调试]使用“uiautomator”获取所有进程 信息:[调试] 执行 cmd:C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell "ps 'uiautomator'" 信息:[调试] 清理 appium 会话 错误:无法启动 Appium 会话,错误是:错误:命令失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools \adb.exe -s emulator-5554 shell "ps 'uiautomator'""
信息:[调试]错误:命令失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell "ps 'uiautomator'""
at ChildProcess.exithandler (child_process.js:751:12) at ChildProcess.emit (events.js:110:17) at maybeClose (child_process.js:1016:16) at Process.ChildProcess._handle.onexit (child_process.js:1088:5)info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Command failed: C:\Windows \system32\cmd.exe /s /c \"C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell \"ps 'uiautomator'\"\" \n)","killed":false,"code":1,"signal":null,"cmd":"C:\Windows\system32\cmd.exe /s /c \"C:\Users\ddaunay \AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554c\"\"","origValue":"命令失败:C:\Windows\system32\cmd.exe /s /c \ "C:\Users\ddaunay\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell \"ps 'uiautomator'\"\"\n"},"sessionId":null} 信息:
【问题讨论】:
-
您是否通过运行命令“adb devices”检查了命令提示符中的设备名称