【发布时间】:2016-09-12 14:29:52
【问题描述】:
我一直在尝试以编程方式启动 Appium 服务器,然后根据进程输出,初始化 Android 驱动程序并运行一些测试。但是,每次从程序启动 Appium Server 时,都会在 Android Driver 的初始化上停止执行。
这是我启动服务器的方法:
private boolean StartServer(String strCommand)
{
try
{
rtCommand = Runtime.getRuntime();
proc = rtCommand.exec(strCommand);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(proc.getInputStream()));
//Checking output of Appium Server Initialization
String s = null;
while ((s = stdInput.readLine()) != null)
{
System.out.println(s);
if (s.contains("Console LogLevel: debug"));
return true;
}
}
catch (Exception ex)
{
System.out.println("Error in starting Appium Server. Stack Trace below:");
ex.printStackTrace();
return false;
}
return false;
}
现在,我的 TestNG 注释 @BeforeClass 包含以下代码:
@BeforeClass
public void setUp() throws MalformedURLException
{
StartServer("cmd /c \"\"C:/Program Files (x86)/nodejs/node.exe\" \"C:/Program Files (x86)/Appium/node_modules/appium/lib/server/main.js\" --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --log-no-color --udid 3100aeb26c6a2363\"");
FrameworkDriver objFrameworkDriver = new FrameworkDriver();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "ec5bee97");
capabilities.setCapability("BROWSER_NAME", Android");
capabilities.setCapability("VERSION", "5.1.1");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("appPackage", "com.XX.AA");
capabilities.setCapability("appActivity", "com.XX.AA.BB");
strProjectDir = "<MyProjectLoc>";
try
{
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
catch (Exception ex)
{
ex.printStackTrace();
}
System.out.println();
}
执行在这里停止:
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
【问题讨论】:
-
它给出了什么错误?
-
无错误。执行只是在该语句上停止并且......只是保持僵局。
-
我在 Appium Jar 上找不到任何 ServerArguments 类。使用 v4.1.2