【发布时间】:2015-10-30 18:56:31
【问题描述】:
我要启动服务器的步骤是: 使用以下命令创建了一个 bat 文件: "C:/Program Files (x86)/Appium/node.exe" "C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js" --address 127.0.0.1 --port 4723 --平台名称 Android --platform-version 18 --automation-name Appium --no-reset --local-timezone --log E:\Android\appium.log""
编写启动服务器的代码:
public class Testing {
AppiumDriver driver;
@BeforeTest
public void AppiumServerStart() throws MalformedURLException, InterruptedException {
String s = null;
String Filepath = "C:\\appiumserver.bat";
// String Command = \""C:/Program Files (x86)/Appium/node.exe"
// "C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js"
// --address 127.0.0.1 --port 4723 --platform-name Android
// --platform-version 18 --automation-name Appium --no-reset
// --local-timezone"\"
System.out.println(Filepath);
try {
Process p = Runtime.getRuntime().exec(Filepath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Filepath);
System.out.println("Server Started");
Thread.sleep(6000);
}
添加 Desire Capabilities 并创建 android 驱动程序实例的代码:
public class DemoCalc extends Testing {
AppiumDriver driver;
@Test
public void Setup() throws MalformedURLException, InterruptedException {
File file = new File(System.getProperty("user.dir"));
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.VERSION, "4.4.4");
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "169.254.140.101:5555");
cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2");
cap.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator");
driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), cap);
但是,Android 驱动程序实例会引发以下异常:
org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:17:10'
如果我手动,通过单击 appium.exe 启动服务器,则不会出现问题。但是当服务器从 java 代码问题启动时出现。
运行bat文件启动appium服务器后,我在任务管理器中看到节点进程,显示appium服务器已经连接。
请帮忙
【问题讨论】:
-
当由 bat 文件启动时,在浏览器“localhost:4723/wd/hub”上试试这个 url(分别替换 localhost 和 port。如果你得到的资源不是有效的,那么这意味着 appium 节点服务器正在运行。
-
如果我添加本地主机 url,它表明 appium 服务器正在工作。此外,如果我首先运行 java 代码来启动服务器,然后手动运行 selenium 代码,它工作正常。但是当我将这两件事结合在一起并尝试运行时,它会失败,并出现描述中给出的异常。