还未发布过话题
  • #5 楼 @seveniruby 恩,看了一下 macaca-insepector 的 xpath, js 写的,目测 appcrawler 的算法和它还是有点小区别,加入了 index,resouce-id,text ... etc,更直观,我用的语言是 java,尝试 java 重造一下。
    十一期间开源,这是大礼包啊,感谢思寒!😃 期待

  • @seveniruby

    版本迭代好快啊,非常好用的一款遍历工具!(汗!,刚才弹出页面,发错位置了。。。)
    有个问题想请教,获取界面元素后,操作某控件后,跳转界面后,那么之前界面上未遍历的元素肯定是需要存储的,以便下次识别遍历情况,我看是存入到了 UrlElement 中,其中 UrlElement 中的 loc 我理解就是该控件的 xpath 规则,下次遍历到该界面就采用这个 xpath 规则获取控件,不知我理解是否准确。问题是,比如下面这个 “注册” 控件元素,获取到 WebElement 后,很想了解如何组装成 loc 存入 UrlElement 的?

    Element='<android.widget.LinearLayout bounds="[0,435][360,484]" checkable="false" checked="false" class="android.widget.LinearLayout" clickable="true" content-desc="" enabled="true" focusable="false" focused="false" index="0" instance="2" long-clickable="false" package="com.xueqiu.android" password="false" resource-id="com.xueqiu.android:id/button_register_container" scrollable="false" selected="false" text="">
      <android.widget.TextView bounds="[0,435][360,484]" checkable="false" checked="false" class="android.widget.TextView" clickable="false" content-desc="" enabled="true" focusable="false" focused="false" index="0" instance="0" long-clickable="false" package="com.xueqiu.android" password="false" resource-id="com.xueqiu.android:id/button_register" scrollable="false" selected="false" text="注册" />
    </android.widget.LinearLayout>'
    
  • STF 框架之 minicap 工具 at 2016年09月16日

    #12 楼 @victors 基础问题 chmod 777 minicap; chmod 777 minicap.so

  • #102 楼 @quqing

    1. 截图增加运动轨迹 <!--截图运动轨迹模式 0-错误的时候画 (默认), 1-所有都画--> 1 这个对吧,那就静等 github 源码更新啦。
  • #100 楼 @quqing 一定的,你将这么好的资源分享出来,非常感谢,赞!
    思涵那版截图上做标记,确实不错,控件遍历过程更直观,非常好奇,不知 quqing 是否了解,那版的开源还是需要耐心等待。

  • #98 楼 @quqing 对 webdriver 还是不够熟悉,原来 driver.manage().timeouts().implicitlyWait(second, TimeUnit.SECONDS);瞬间提速许多,😃

  • #90 楼 @quqing 确实 JDK1.8 上是可以奔跑的!赞!
    还遇到一个问题,影响性能不知如何破解,UiNode 存储 Id 包含 xpath,之后 pop 出来会根据 xpath 在当前页面进行懒加载,
    element 获取不到,抛出 NoSuchElementException,从开始找到抛异常间隔时间太长了,这个时间能否缩短。
    Appium Server 端 log 如下

    info: [debug] [BOOTSTRAP] [debug] Got data from client: {"cmd":"action","action"
    :"find","params":{"strategy":"xpath","selector":"//android.widget.FrameLayout[1]
    /android.view.ViewGroup[1]/android.widget.FrameLayout[1]/android.widget.LinearLa
    yout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.wid
    get.LinearLayout[2]/android.widget.FrameLayout[1]/android.widget.ListView[1]/and
    roid.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.Linear
    Layout[4]","context":"","multiple":false}}
    info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
    info: [debug] [BOOTSTRAP] [debug] Got command action: find
    info: [debug] [BOOTSTRAP] [debug] Finding //android.widget.FrameLayout[1]/androi
    d.view.ViewGroup[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]
    /android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.Lin
    earLayout[2]/android.widget.FrameLayout[1]/android.widget.ListView[1]/android.wi
    dget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[
    4] using XPATH with the contextId:  multiple: false
    info: [debug] [BOOTSTRAP] [debug] Returning result: {"status":7,"value":"Could n
    ot find an element using supplied strategy. "}
    
  • 抢沙发,楼主辛苦!

  • #88 楼 @quqing

    Exception in thread "main" java.lang.UnsupportedClassVersionError: pers/quq/filedb/core/Filter : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at pers.traveler.robot.RobotFactory.build(RobotFactory.java:13)
        at pers.traveler.test.TravelerTest.main(TravelerTest.java:16)
    
    

    我在 github 上拿到源码,一直在看,还没有跑成功,报错如上
    Windows7
    android 6.0
    测试 Apk zhihu
    请教一下,我没找到 pers/quq/filedb/core/Filter 这个在哪

  • #13 楼 @quqing quqing 你好,请问你的这个版本核心遍历算法部分用的是 DFS 和 Scala 版本的处理方式一样么,目前那版还未开源,反编效果也不好,想研究一下。请指教,谢谢。