• #9 楼 @sincool 其实这个问题解决方法就是看提示信息了

    Original error: com.youqian.activity/.guide.SplashActivity never started. Current: com.youqian.activity/.guide.GuideActivity
    

    所以说你就直接将

    desired_caps['appActivity'] = 'com.youqian.activity.guide.SplashActivity'
    desired_caps[ 'appWaitActivity'] = 'com.youqian.activity.guide.SplashActivity'
    

    改成

    desired_caps['appActivity'] = 'com.youqian.activity.guide.GuideActivity'
    desired_caps[ 'appWaitActivity'] = 'com.youqian.activity.guide.GuideActivity'
    

    因为它告诉你说当前的 Activity 是 GuideActivity 虽然我还不太清楚 waitActivity 是什么作用。

  • #6 楼 @sincool 其实你已经知道问题的大概了,你导入的包导太多 结果你又不知道有什么用,你再检查下你就会发现你导入了两个 webdriver

    from appium import webdriver
    from selenium import webdriver
    

    你把 selenium 那个 webdriver 去掉再试试看。

  • . 很明显的问题。。

    {"name": "u'WEBVIEW_com.tencent.android.qqdownloader'"} 
    

    你为什么要加 u''呢
    改成

    {"name": "WEBVIEW_com.tencent.android.qqdownloader"}
    
  • #4 楼 @sincool 贴代码会比较好点。

  • 如果你是用 UIAutomator 的话 直接就是

    uiDevice.pressKeyCode(26); //KEYCODE_POWER=26;
    

    appium 的话

    driver.keyevent(26)
    
  • #4 楼 @wyb199026 使用 appium 的键盘 就如楼上的代码就不会出现你遇到的问题了。

  • #6 楼 @darker50 咦没有吗?一直都是免费的啊,只是有些功能不能用而已。

  • 我运行的时候默认都是先开启 genemotion 的模拟器,没出现你说的情况,如果你那边有问题,试试看能不能通过将环境变量中的 adb 路径配置成第三方模拟器的 adb.

  • #2 楼 @32191163

    疑问的第一点:
    我记得当时我的做法是直接将 nodejs 的安装的路径改成 chmod 777 之后 就可以解压安装了,这样子就不会跟 npm install appium 冲突了,虽然这个做法有点恶心。

  • #9 楼 @xushizhao 好像有点明白了 绑定一个 Accessibility Service 服务的应用 这个不难 我去试试看。

  • #7 楼 @xushizhao 没太明白,开启 Accessibility Service 这个我懂,可是跟我一开始的问题实际在 uiautomator 中如何使用还是没有解决。另外我应该不用去创建一个 Accessibility service 之类的吧,因为默认 Uiautomator 已经有了,下面就是获取 LastTraversedText() 的源代码。

    public QueryController(UiAutomatorBridge bridge) {
             mUiAutomatorBridge = bridge;
            bridge.addAccessibilityEventListener(new AccessibilityEventListener() {
                @Override
                 public void onAccessibilityEvent(AccessibilityEvent event) {
                    synchronized (mLock) {
                        mLastPackageName = event.getPackageName().toString();
                       // don't trust event.getText(), check for nulls
                         if (event.getText() != null && event.getText().size() > 0) {
                             if(event.getText().get(0) != null)
                                 mLastActivityName = event.getText().get(0).toString();
                        }
    
                        switch(event.getEventType()) {
                         case AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY:
                             // don't trust event.getText(), check for nulls
                             if (event.getText() != null && event.getText().size() > 0)
                                if(event.getText().get(0) != null)
                                     mLastTraversedText = event.getText().get(0).toString();
                                if(DEBUG)
                                Log.i(LOG_TAG, "Last text selection reported: " + mLastTraversedText);
                                   break;
                         }
                         mLock.notifyAll();
                     }
                 }
             });
         }
    
  • #5 楼 @xushizhao 问题就是在于 我要怎么才能够产生 TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY 这个事件,官网说

    You can write a test to perform directional arrow presses to focus on different elements inside a WebView

    就可以了,貌似不太行。我去研究研究。

  • getLastTraversedText() 能够来个 demo 解释下这个的用法吗?

  • @xushizhao 还少了
    wait(UiObject2Condition condition, long timeout)
    wait(SearchCondition condition, long timeout)

  • Appium WebView 初探 at 2015年11月11日

    说下我自己的经验
    第一个问题一般是由于 webview 没有开调试:

    For a real device you need to have "setWebContentsDebuggingEnabled" in the web view. Without it the web view is not exposed to automation tools

    所以对应的 webview 需要增加:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        WebView.setWebContentsDebuggingEnabled(true);
    }
    

    第三个问题:
    Remote Debugging on Android with Chrome 看看这个吧,。

    至于第二个问题实在不清楚。

  • #4 楼 @testly 其实我到时觉得测试报告里面放置截图并没有什么不妥,另外其实我想说的截图并不是一个重点,因为我只是提供一个思路去修改 reportNg 完成可以根据自己公司的需要来修改,只是我觉得这种修改方式貌似不太对。

  • #5 楼 @treesea2015 请问如何改造 reportng 能给下代码介绍下吗?

  • 接口自动化测试框架 at 2015年11月05日

    #13 楼 @xushizhao 411249087 thanks

  • 接口自动化测试框架 at 2015年11月04日

    问下 接口的返回的内容是如何校验的?是需要校验所有的值呢还是说只是校验一些关键的内容。另外能够详细说下规则配置那部分吗?

  • 接口自动化测试框架 at 2015年11月04日

    看了下,工程量很大啊,web 界面是开发做的,还是测试人员负责的。

  • 接口自动化测试框架 at 2015年11月04日

    又是干货。果断收藏

    —— 来自 TesterHome 官方 安卓客户端

  • 感谢 fir.im —— 结果公布 at 2015年11月03日

    API 自动化测试框架分享 +1