忽略节点这个貌似有问题。
我忽略了一个节点,该节点目前的帖子会屏蔽了,但该节点新发的帖子我还是能看到
#2 楼 @seveniruby python 没有 switch 。。。
不错呀~这类程序很实用。写熟了对提高效率很有帮助。
查了下,应该是 chromedriver 的 bug 。而且从 appium server log 上看应该是 chromedriver 太长时间不返回导致自动超时了:
[36minfo[39m: JSONWP Proxy: Proxying [GET /wd/hub/session/15c97430-8a97-4dce-932a-347f4ed20ba7/screenshot] to [GET http://127.0.0.1:9515/wd/hub/session/e89b5704975b3a112dc7bd1184900a6c/screenshot] with body: {}
[36minfo[39m: [debug] Didn't get a new command in 60 secs, shutting down...
...
[36minfo[39m: JSONWP Proxy: Got response with status 200: {"sessionId":"e89b5704975b3a112dc7bd1184900a6c","status":21,"value":{"message":"timeout: Timed out receiving message from renderer: 600.000\n (Session info: chrome=43.0.2357.121)\n (Driver info: chr...
...
你用这个最新的 chromedriver 替换掉 appium 自带的试试?
https://pan.baidu.com/s/1bnUceaN
appium 自带的 chromedriver 位置(假设你的 Appium.app 放在 /Applications
):
/Applications/Appium.app/Contents/Resources/node_modules/appium/build/chromedriver/mac/chromedriver
直接用链接里的文件解压后覆盖旧的就好。
PS: 你用的是啥编码。。。为何大括号这些字符在你这里都变成了 [36
这种显示。。。
代码 markdown 还是有些问题。这次帮你改了,建议你详细看下回帖框右下角的【排版说明】。
另:麻烦补充一些信息:
invest_list.click_invest_contract()
前后大约 20 行的 appium server log 。你截图给的那个 sessionid 为空的是心跳包,和脚本执行关系不大。赞啊~
弱弱地问个问题,程序中其他地方需要获取输入框文字时,也需要使用一些特殊的方法来获取这个内部的 StringBuilder 了?
你应该先确认进入 我的账户 这个动作实际是否切换了 activity ,以及它的 activity 是什么。可以通过反编后查看 AndroidMainfest.xml 看到,当然有源码更好。
这种抄袭不尊重别人劳动成果,就应该追究到底!
#10 楼 @qq329999897 麻烦把解决方案也附到正文吧,方便以后别人查看~
能否补充一下上下文?
crosswalk 以前有帖子提过,chromedriver 貌似不支持它(内核不完全一样),它自己另外有个对应的 webdriver 叫 xwalkdriver 。
你搜索一下就找到了。
不错~写得很完整。
弱弱地问句, HSTS 是啥?
赞啊~
最近在研究 iOS 对无源码的 app 进行 hook ,卡在重签名上面了,还是 android 方便。
赞~这是个很好的机会哦~
#18 楼 @lihuazhang 这个我觉得可以探究完后整个原因后新开个帖子再加精吧。这样加精大多数人还是看不到。
#16 楼 @our166 在你的试验基础上再做了几个试验:
从这三个场景可以推出:appium server 启动 bootstrap 后 android 系统的 uiautomator 程序发生了变化,同一个函数在启动前后表现不一样了。
其中很有可能就是上面提到的那个 AccessibilityNodeInfoDumper.java
做的。你可以从这个方向研究一下。
#16 楼 @our166 你看下在调用 getPageSource 函数时 appium server 收到的请求路径是什么(会有条类似 --> GET /xxx
这样的日志)。
我看了下源码,获取 source 最终是通过遍历元素树获取的。遍历的关键代码:https://github.com/appium/appium/blob/v1.4.16/lib/devices/android/bootstrap/src/io/appium/uiautomator/core/AccessibilityNodeInfoDumper.java
这部分代码是来自于 android 系统里面 uiautomator 的相关代码,只是 appium 修复了其中的一些 bug 。具体你可以对比下两者的代码。
我觉得有时候能获取 Webview 里面的内容有时候不行,这个应该是有规律的。你可以看下这个规律是什么,能帮助定位问题原因。这也算是一个未解之谜了。
PS:appium 可以设定不重签应用的。使用默认模式时重不重签都可以的。