Appium [已解决]Appium for java 在 iOS 模拟器下,运行无反应

蝴蝶 · 2015年08月13日 · 最后由 32191163 回复于 2015年11月01日 · 3516 次阅读

appium 版本 1.4.8
jdk 版本 1.7
模拟器版本 8.3

appium.dmg 安装,启动后,lanuch 正常,调出 inspector 正常,启动模拟器正常

但是在 eclipse 写了 code 后,JUnit Test 运行无反应,没有提示任何错误,appium 也没有输出日志,为什么呢??😩 😩 😩 😩

开始以为是 eclipse 的问题,换了另外一个 eclipse 还是这样,实在不知道为什么运行不起来了....求大神解答!

code 如下:

package com.appium;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import junit.framework.TestCase;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.ios.IOSDriver;
import org.openqa.*;

public class Demo {

    private WebDriver driver;

    @Before
    public void setUp() throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("appium-version", "1.0");
        capabilities.setCapability("platformName", "iOS");
        capabilities.setCapability("platformVersion", "8.3");
        capabilities.setCapability("deviceName", "iPhone 5s");
        capabilities.setCapability("app", "/Users/eternally/sample-code-master/sample-code/apps/TestApp/build/release-iphonesimulator/TestApp.app");
        driver = new IOSDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    }

    @After
    public void tearDown() throws Exception {
        driver.quit();
    }

    @Test
    public void test() {
        driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIATextField[1]/UIATextField[1]")).sendKeys("3");
        driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIATextField[2]/UIATextField[1]")).sendKeys("5");
        driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAButton[1]")).click();
    }
}

截图:

appium:


eclipse:

解决方法:

原因,网络不通
关掉 *** 就好啦

共收到 17 条回复 时间 点赞

贴的图 appium servr 的 log 都全了嘛,怎么都是重复一条

传输通道没建立?就只有一个 status

之前遇到过,好像是换了 JDK 就好了,换成 JDK7。

#3 楼 @paojiao 我就说用 jdk7 呀

#3 楼 @paojiao 我就是用的 jdk7 呀

#2 楼 @lihuazhang 那怎么办啊。。。

#1 楼 @eurekasaber 就是这样的啊。。

#5 楼 @hudiefeifei 检查一下系统环境变量 看看和工程的 JDK 是不是同一个

只有一个 status 不停出现这个是 appium.app 本身的正常现象,只要选的 platform 是 iOS 都会有。(目前还没探究具体原因,估计应该是 GUI 界面向 server 发心跳包确认 server 是否还存活吧,我用命令行启动 appium 的话不会有这些 log )

这个 log 和实际执行没有半毛钱关系。。。

另外,你能在 setUp 那里打个断点或者打印一个 log 吗?现在这么看貌似 Junit 的这个用例根本没执行。

蝴蝶 #10 · 2015年08月14日 Author

#8 楼 @paojiao 是同一个啊,我在 setUp 和 tearDown 打印 System.out.println("run"),都能输出啊,就是 appium 的 log 没什么反应,求 qq!

蝴蝶 #11 · 2015年08月14日 Author

#9 楼 @chenhengjie123 我在 setUp 和 tearDown 打印 System.out.println("run"),都能输出啊....好郁闷,就是其他没什么反应

#11 楼 @hudiefeifei 你在这一句前后都加个 log :

driver = new IOSDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

看看是否前后的 log 都能打印出来?

蝴蝶 #13 · 2015年08月14日 Author

#12 楼 @chenhengjie123 后面打印不出来,是网络问题????没整明白。。。

蝴蝶 #14 · 2015年08月14日 Author

#12 楼 @chenhengjie123 忘了关 *** 了.....

你试一下直接在浏览器输入 "http://127.0.0.1:4723/wd/hub" 看有没有这样的提示信息?

That URL did not map to a valid JSONWP resource

请问 driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 这句是什么意思啊?

#16 楼 @kathy_wang 这个是连接远程驱动,也就是将定义的初始化测试对象,连接到 appium server

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册