Giter VIP home page Giter VIP logo

qt4a's People

Contributors

blakeyzhang avatar drunkdream avatar eeelin avatar hqlian007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qt4a's Issues

device.connect_wifi('xxx', 'xxx')提示RuntimeError: java.lang.RuntimeException: ssid xxx not found

Android设备:google Pixel arm64-v8a Android 7.1.1
出错代码行:device.connect_wifi('xxx', 'xxx') # 'xxx'是马赛克
日志:
Traceback (most recent call last):
File "/Users/Anker/qtaf_project/footestproj/footest/hello.py", line 48, in
HelloTest().debug_run()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testcase.py", line 518, in debug_run
return runner.run(tests)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/runner.py", line 241, in run
self.run_all_tests(self.load(target))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/runner.py", line 356, in run_all_tests
passed = self.run_test(test)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/runner.py", line 290, in run_test
result = runner.run(test, self.__report.get_testresult_factory())
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testcase.py", line 815, in run
raise RuntimeError("用例执行线程异常:\n%s" % smart_text(self._error))
RuntimeError: 用例执行线程异常:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testcase.py", line 701, in _thread_run
getattr(self._testcase, it)()
File "/Users/Anker/qtaf_project/footestproj/footest/hello.py", line 35, in run_test
device.connect_wifi('xxx', 'xxx')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/qt4a/device.py", line 654, in connect_wifi
if self._device_driver.connect_wifi(wifi_name, wifi_pass): return True
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/qt4a/androiddriver/devicedriver.py", line 459, in connect_wifi
return self._send_command('ConnectWifi', WifiName=wifi_name)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/qt4a/androiddriver/devicedriver.py", line 372, in _send_command
raise RuntimeError(result['Error'])
RuntimeError: java.lang.RuntimeException: ssid xxx not found
at com.test.androidspy.Device.connectWifi(Device.java:1111)
at com.test.androidspy.SpyHelper.onRecv(SpyHelper.java:647)
at com.test.androidspy.SocketServer$ServerBase.run(SocketServer.java:61)
at com.test.androidspy.SocketServer$LocalServerThread.run(SocketServer.java:136)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testcase.py", line 703, in _thread_run
self._testresult.exception('%s执行失败' % it)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testresult.py", line 324, in exception
self.log_record(EnumLogLevel.CRITICAL, msg, record, attachments)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testresult.py", line 236, in log_record
extra_record, extra_attachments = self._get_extra_fail_record_safe()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/testbase/testresult.py", line 295, in _get_extra_fail_record_safe
raise RuntimeError("%s.get_extra_fail_record must return a 2 elements tuple" % class_path)
RuntimeError: HelloTest.get_extra_fail_record must return a 2 elements tuple

实际手机wifi列表是有xxx这个热点的,'xxx'我试了好几个wifi名字,都是这样的日志。

重打包生成的axml,resourceChunk缺少属性。

axml.py生成AXML时写入的reource_attr 只写入了EnumAttrType含有的属性。
如Android9上需要启动http时使用了networkSecurityConfig属性,但生成apk时未写入会导致android9上无法访问http。

简单的解决方法:

for i, it in enumerate(self.res_map_chunk.res_map):
            attr_name = self.string_pool_chunk.string_list[i]
            # 如果apk的引用属性未在EnumAttrType则追加
            if (attr_name, it) not in EnumAttrType.list():
                setattr(EnumAttrType, attr_name.upper() + "_ATTR", (attr_name, it))

该方法是基于EnumAttrType的解决方式,不过个人感觉EnumAttrType的方式不是很好,希望作者看看如何更好的优化。

获取logcat线程报错

Python: 3.7.4
qtaf: 5.4.35
qt4a: 2.2.71
手机: sony z3
步骤:
关闭微信进程
打开微信(大概就在这里报错了)

2020-03-25 17:54:10,564 123145487785984 thread Thread-2 exit
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4a/androiddriver/util.py", line 537, in run
    return threading.Thread.run(self)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4a/androiddriver/adb.py", line 589, in _logcat_thread_func
    init_process, item['pid'])
TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'

部分日志信息,希望有所帮助。。。

[system_server(3489)] [2020-03-25 17:46:11.053] D/BluetoothManagerService(3536): Message: 20
[system_server(3489)] [2020-03-25 17:46:11.053] D/BluetoothManagerService(3536): Added callback: android.bluetooth.IBluetoothManagerCallback$Stub$Proxy@a2eadc5:true
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.072] E/libEGL(30973): validate_display:255 error 3008 (EGL_BAD_DISPLAY)
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I741a3d36ca)
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): OpenGL ES Shader Compiler Version: E031.29.00.00
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): Build Date: 04/04/16 Mon
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): Local Branch: mybranch19053788
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): Remote Branch: quic/LA.BF.1.1.3_rb1.12
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): Local Patches: NONE
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.073] I/Adreno-EGL(30973): Reconstruct Branch: NOTHING
[system_server(3489)] [2020-03-25 17:46:11.180] D/ConnectivityService(5126): listenForNetwork for Listen from uid/pid:10243/30533 for NetworkRequest [ id=170, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ]
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.231] W/VideoCapabilities(30973): Unrecognized profile 2130706433 for video/avc
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.246] W/AudioCapabilities(30973): Unsupported mime audio/alac
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.247] W/AudioCapabilities(30973): Unsupported mime audio/dsd
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.254] W/VideoCapabilities(30973): Unsupported mime video/divx
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.257] W/VideoCapabilities(30973): Unsupported mime video/divx311
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.259] W/VideoCapabilities(30973): Unsupported mime video/divx4
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.267] W/VideoCapabilities(30973): Unsupported mime video/mp4v-esdp
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.280] I/VideoCapabilities(30973): Unsupported profile 4 for video/mp4v-es
[com.tencent.mm:toolsmp(30533)] [2020-03-25 17:46:11.285] D/cr_MediaCodecUtil(30973): [MediaCodecUtil.java:645] Found target encoder for mime video/avc : OMX.qcom.video.encoder.avc
[com.tencent.mm:push(29586)] [2020-03-25 17:46:11.493] W/art(30979): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[46,tid=30979,Native,Thread*=0x8bfee700,peer=0x1336c0a0,"mars::30979"]
[com.tencent.mm:push(29586)] [2020-03-25 17:46:11.534] W/art(30974): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[45,tid=30974,Native,Thread*=0x8d304f00,peer=0x13362100,"mars::30974"]
[ps(31006)] [2020-03-25 17:46:11.753] I/ps(31006): type=1400 audit(0.0:60607): avc: denied { getattr } for path="/proc/230" dev="proc" ino=9405 scontext=u:r:shell:s0 tcontext=u:r:logd:s0 tclass=dir permissive=1 ppid=13521 pcomm="adbd" tgid=13521 tgcomm="adbd"
[ps(31052)] [2020-03-25 17:46:12.873] I/ps(31052): type=1400 audit(0.0:60622): avc: denied { getattr } for path="/proc/230" dev="proc" ino=9405 scontext=u:r:shell:s0 tcontext=u:r:logd:s0 tclass=dir permissive=1 ppid=13521 pcomm="adbd" tgid=13521 tgcomm="adbd"
[com.google.android.gms.persistent(5538)] [2020-03-25 17:46:13.384] D/Uploader(25367): Network request failed class java.net.SocketTimeoutException(failed to connect to play.googleapis.com/216.58.200.42 (port 443) after 60000ms: isConnected failed: ETIMEDOUT (Connection timed out))
[com.tencent.mm(29485)] [2020-03-25 17:46:13.503] D/skia(29534): --- SkImageDecoder::Factory returned null
[com.tencent.mm(29485)] [2020-03-25 17:46:13.548] D/skia(29534): --- SkImageDecoder::Factory returned null
[com.tencent.mm:push(29586)] [2020-03-25 17:46:13.944] W/art(31109): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[47,tid=31109,Native,Thread*=0x8d304500,peer=0x133d4100,"mars::31109"]
[com.tencent.mm:push(29586)] [2020-03-25 17:46:14.127] W/art(31108): Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[45,tid=31108,Native,Thread*=0x8bfefb00,peer=0x13362160,"mars::31108"]
[com.test.androidspy:service(30057)] [2020-03-25 17:46:14.298] W/ContextImpl(31142): Unable to create files subdir files
[com.test.androidspy:service(30057)] [2020-03-25 17:46:15.340] W/ContextImpl(31142): Unable to create files subdir files
[com.test.androidspy:service(30057)] [2020-03-25 17:46:16.371] W/ContextImpl(31142): Unable to create files subdir files

pm clear命令可以清除数据提示权限问题

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/xy_hotlib/kwbase/suite/runner.py", line 148, in run
self.case_runner.run(configs, options, cfg_module, vsaves, locks)
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/xy_hotlib/kwbase/suite/runner.py", line 105, in run
self.run_stage(instance, 'case_teardown')
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/xy_hotlib/kwbase/suite/runner.py", line 48, in run_stage
getattr(instance, stagename, lambda : 1)()
File "./cases/InvestAppUITest/Android/atopdemo.py", line 75, in case_teardown
self.release_app()
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/jsonrpc_requests/jsonrpc.py", line 130, in call
return self.__request_method(self.__method_name, args, kwargs)
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/xy_hotlib/kwbase/suite/base.py", line 41, in __method
self._run_step(self.__library, method_name, kwargs)
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/xy_hotlib/kwbase/suite/base.py", line 44, in _run_step
getattr(library, method_name)(**kwargs)
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/xy_hotlib/kwbase/meta.py", line 59, in _parse_template
return func(self, *args, **kwargs)
File "./xy_buzlib/AppUi/InvestApp/Android/AndroidLibBase.py", line 75, in release_app
self.app._release()
File "./xy_buzlib/AppUi/InvestApp/Android/AppBase.py", line 53, in _release
self.device.clear_data(self.package_name) # 清除包数据
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/qt4a/device.py", line 810, in clear_data
return 'Success' in self.run_as(package_name, cmdline)
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/qt4a/device.py", line 302, in run_as
return self.adb.run_as(package_name, cmd, **kwargs)
File "/Users/zhanghuiping/.pyenv/versions/3.6.2/envs/ui-3.6.2/lib/python3.6/site-packages/qt4a/androiddriver/adb.py", line 1360, in run_as
raise PermissionError('run %s as %s failed' % (cmdline, package_name))
qt4a.androiddriver.util.PermissionError: run pm clear com.yingzt.invest as com.yingzt.invest failed

运行webview demo报错

log:
测试用例:WebViewTest 所有者:Administrator 优先级:High 超时:5分钟
步骤1: 1、登录Android demo,进入网页视图
RESOURCE: acquire resource (res_type:android, res_group:None, condition:{}) successfully
172.16.0.227:5555(google Nexus 5 armeabi-v7a Android 6.0.1)
ENVIRONMENT: 申请 Android 设备成功:google Nexus 5(172.16.0.227:5555)
Hello
GetControl
GetControlVisibility
EnableSoftInput
SetControlText
GetControl
GetControlVisibility
EnableSoftInput
SetControlText
GetControl
GetControlVisibility
GetObjectFieldValue
GetControlRect
GetControlRect
Click
INFO: 登录完成
GetControl
GetControlVisibility
GetObjectFieldValue
GetControlRect
GetControlRect
Click
步骤2: 2、检查网页标题
GetControl
EvalScript
CRITICAL: run_test执行失败
Traceback (most recent call last):
File "D:\Python36\lib\site-packages\qt4a\andrcontrols.py", line 1702, in eval_script
return self._driver.eval_script(self.hashcode, frame_xpaths, script)
File "D:\Python36\lib\site-packages\qt4a\androiddriver\androiddriver.py", line 824, in eval_script
result = self.send_command(EnumCommand.CmdEvalScript, Control=control, Script=script, Frame=frame_xpaths)
File "D:\Python36\lib\site-packages\qt4a\androiddriver\androiddriver.py", line 504, in send_command
raise AndroidSpyError(result['Error'])
qt4a.androiddriver.util.AndroidSpyError: java.lang.RuntimeException: java.lang.RuntimeException: Get Field mAwContents Failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Python36\lib\site-packages\testbase\testcase.py", line 701, in _thread_run
getattr(self._testcase, it)()
File "E:/QT4ADemoProj-master/demotest/webview.py", line 35, in run_test
demo_webpage = DemoWebPage(demo_webpanel.Controls["webview"])
File "D:\Python36\lib\site-packages\qt4w\webcontrols.py", line 1058, in init
if wait_for_ready: self.wait_for_ready()
File "D:\Python36\lib\site-packages\qt4w\webcontrols.py", line 1125, in wait_for_ready
if self.ready_state == 'complete': return
File "D:\Python36\lib\site-packages\qt4w\webcontrols.py", line 1100, in ready_state
return self.exec_script('document.readyState')
File "D:\Python36\lib\site-packages\qt4w\util.py", line 144, in wrap_func
ret = func(*args, **kwargs)
File "D:\Python36\lib\site-packages\qt4w\webcontrols.py", line 1147, in exec_script
return self._webdriver.eval_script(self._locator, script)
File "D:\Python36\lib\site-packages\qt4a\androiddriver\webdriver.py", line 2080, in eval_script
raise e
File "D:\Python36\lib\site-packages\qt4a\androiddriver\webdriver.py", line 2065, in eval_script
return super(AndroidWebDriver, self).eval_script(frame_xpaths, script)
File "D:\Python36\lib\site-packages\qt4w\webdriver\webdriver.py", line 412, in eval_script
raise e
File "D:\Python36\lib\site-packages\qt4w\webdriver\webdriver.py", line 395, in eval_script
return self._webview.eval_script(frame_xpaths, script)
File "D:\Python36\lib\site-packages\qt4a\andrcontrols.py", line 1759, in eval_script
return self.webview_impl.eval_script(frame_xpaths, script)
File "D:\Python36\lib\site-packages\qt4a\andrcontrols.py", line 1711, in eval_script
raise JavaScriptError(frame_xpaths, e.args[0])
qt4w.util.JavaScriptError: []java.lang.RuntimeException: java.lang.RuntimeException: Get Field mAwContents Failed

172.16.0.227:5555的截图:E:\QT4ADemoProj-master\demotest\WebViewTest_172.16.0.227_5555_1551148419.4499266.png
CRITICAL: post_test执行失败
Traceback (most recent call last):
File "D:\Python36\lib\site-packages\testbase\testcase.py", line 701, in _thread_run
getattr(self._testcase, it)()
File "E:\QT4ADemoProj-master\demolib\demotestbase.py", line 17, in post_test
super(DemoTestBase, self).post_test()
File "D:\Python36\lib\site-packages\qt4a\androidtestbase.py", line 83, in post_test
self._save_logcat()
File "D:\Python36\lib\site-packages\qt4a\androidtestbase.py", line 250, in _save_logcat
device.adb.save_log(log_path)
File "D:\Python36\lib\site-packages\qt4a\androiddriver\adb.py", line 442, in save_log
f.write('\n'.join(log_list))
UnicodeEncodeError: 'gbk' codec can't encode character '\u0402' in position 88914: illegal multibyte sequence

User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5 Build/M4B30X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/72.0.3626.105 Mobile Safari/537.36

华为p30启动重打包应用闪退

设备信息:型号:VOG-AL00,版本号:9.1.0.193,Android版本:9,未root。
报错信息:
tuia.exceptions.ControlNotFoundError: Wait for Activity com.nfdaily.nfplus.module.firstissue.HomeSideShowActivity timeout, current Activity: com.huawei.android.launcher.unihome.UniHomeLauncher

android driver获取的坐标比例在某些app不正确

phone: Honor 8 Lite
Android: 8.0.0

image

如图所示,driver获取的控件树的表明当前根节点的坐标为720*1280
但是实际手机屏幕的尺寸为1080*1920,导致所有控件的实际坐标都存在一个比例差

应用重打包后运行Crash

10-28 22:40:33.848  2146  2336 E XgStat  : java.lang.VerifyError: Verifier rejected class okio.AsyncTimeout$Watchdog: void okio.AsyncTimeout$Watchdog.run() failed to verify: void okio.AsyncTimeout$Watchdog.run(): [0x18] expected to be within a catch-all for an instruction where a monitor is held (declaration of 'okio.AsyncTimeout$Watchdog' appears in /data/app/com.tencent.karaoke-1/base.apk)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okio.AsyncTimeout$Companion.scheduleTimeout(Unknown Source)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okio.AsyncTimeout$Companion.access$scheduleTimeout(Unknown Source)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okio.AsyncTimeout.enter(Unknown Source)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.framed.FramedStream$FramedDataSink.emitDataFrame(FramedStream.java:499)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.framed.FramedStream$FramedDataSink.close(FramedStream.java:545)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okio.RealBufferedSink.close(Unknown Source)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:48)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:109)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:124)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:170)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.RealCall.access$100(RealCall.java:33)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.RealCall$AsyncCall.execute(RealCall.java:120)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
10-28 22:40:33.848  2146  2336 E XgStat  : 	at java.lang.Thread.run(Thread.java:761)
10-28 22:40:33.848  2146  2336 D XgStat  : [OkHttp Dispatcher(1109): ProGuard:145] - Call the original uncaught exception handler.

UnicodeDecodeError: 'utf8' codec can't decode byte 0xf5 in position 82: invalid start byte

============================================================
测试用例:HelloTest 所有者:Administrator 优先级:High 超时:5分钟


步骤1: 1、登录Android demo
RESOURCE: acquire resource (res_type:android, res_group:None, condition:{}) successfully(OPPO A59s arm64-v8a Android 5.1)
ENVIRONMENT: 申请 Android 设备成功:OPPO A59s(LRLJ4H6599999999)
2019-05-09 15:55:40,410 123145489002496 thread Thread-2 exit
Traceback (most recent call last):
File "/Users/wulixia/Library/Python/2.7/lib/python/site-packages/qt4a/androiddriver/util.py", line 531, in run
return threading.Thread.run(self)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/Users/wulixia/Library/Python/2.7/lib/python/site-packages/qt4a/androiddriver/adb.py", line 564, in _logcat_thread_func
self.insert_logcat('%s(%d)' % (pid_dict.get(pid), pid), self._year, ret.group(1), ret.group(2), ret.group(5), ret.group(6), ret.group(4), ret.group(7))
File "/Users/wulixia/Library/Python/2.7/lib/python/site-packages/qt4a/androiddriver/adb.py", line 461, in insert_logcat
content))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf5 in position 82: invalid start byte

不安全的临时文件

mktemp()并不安全,因为在调用mktemp()和第一个进程随后尝试创建该文件之间的时间内,另一个进程可能创建一个具有该名称的文件。使用此函数可能会在程序中引入安全漏洞。当您开始处理它返回的文件名时,其他人可能已经抢先一步了。建议使用mkstemp()
QT4A-master/qt4a/andrcontrols.py 1827
image
QT4A-master/qt4a/androidtestbase.py 213
image

不安全的临时文件

mktemp()并不安全,因为在调用mktemp()和第一个进程随后尝试创建该文件之间的时间内,另一个进程可能创建一个具有该名称的文件。使用此函数可能会在程序中引入安全漏洞。当您开始处理它返回的文件名时,其他人可能已经抢先一步了。建议使用mkstemp()
QT4A-master/qt4a/andrcontrols.py 1827
image
QT4A-master/qt4a/androidtestbase.py 213
image

小米 MI 4LTE-CT 安卓4.4.4 运行demo 报错

2019-02-14 14:22:20,088 INFO 9936 执行ADB命令耗时:0.075388956887
2019-02-14 14:22:20,088 DEBUG 9936 Run server sh: /data/local/tmp/qt4a/SpyHelper.sh: No such file or directory
2019-02-14 14:22:20,088 INFO 9936 adb 127.0.0.1:4adb4609 shell ps
2019-02-14 14:22:20,187 INFO 9936 执行ADB命令耗时:0.09904395269
2019-02-14 14:22:21,190 DEBUG 9936 [DeviceDriver] Server com.test.androidspy process created: False
2019-02-14 14:22:21,194 DEBUG 9936 server_opened (127.0.0.1, 15662) [Errno 10054]
2019-02-14 14:22:21,194 INFO 9936 adb 127.0.0.1:4adb4609 forward tcp:15662 localabstract:com.test.androidspy
2019-02-14 14:22:21,198 INFO 9936 执行ADB命令耗时:0.00296476781769
2019-02-14 14:22:41,148 INFO 16224 log: --------- beginning of /dev/log/system not match pattern
2019-02-14 14:22:21,203 ERROR 9936 send '{"Cmd": "Hello", "Seq": 1}\n' error: [Errno 10054]
Traceback (most recent call last):
File "D:\Anaconda3\envs\Fauto\lib\site-packages\qt4a\androiddriver\clientsocket.py", line 168, in send_command
result = self.send(data)
File "D:\Anaconda3\envs\Fauto\lib\site-packages\qt4a\androiddriver\clientsocket.py", line 113, in send
expect_len = self.recv(8)
File "D:\Anaconda3\envs\Fauto\lib\site-packages\qt4a\androiddriver\clientsocket.py", line 100, in recv
return self._sock.recv(buff_size)
error: [Errno 10054]

qt4a注入某些应用的进程时,导致应用闪退

设备信息:217d9b0e(LEADING_IDEAL One arm64-v8a Android 8.1.0)

[2020-09-25 19:21:23.620] E/TaesLog(16079): [15996,498,2][com.xxxx.xxxx,QAPM_Reporter,main] WeCarApplication:handleGlobalException ExceptionInInitializerError/nnull
[2020-09-25 19:21:23.620] E/TaesLog(16079): java.lang.ExceptionInInitializerError
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.HelperUtil.isArt(Unknown Source:0)
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.MethodHook.isSupportHook(MethodHook.java:223)
[ [2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.MethodHook.initHook(MethodHook.java:243)
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.MethodHook.(MethodHook.java:20)
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.MethodHook.isSupportHook(Unknown Source:0)
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.ViewManager.(ViewManager.java:85)
[ [2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.ActivityInspect.(ActivityInspect.java:149)
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.ActivityInspect.run(ActivityInspect.java:164)
[2020-09-25 19:21:23.620] E/TaesLog(16079): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on
a null object reference
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.HelperUtil.getRootPath(HelperUtil.java:711)
[2020-09-25 19:21:23.620] E/TaesLog(16079): at com.test.androidspy.HelperUtil.(HelperUtil.java:1507)
[2020-09-25 19:21:23.620] E/TaesLog(16079): ... 8 more

vivo z5 qt4a-manage install-driver 报错

qt4a-manage install-driver
Device "e62d5bc6" will install driver...
Current CPU arch: arm64-v8a

Traceback (most recent call last):
File "/usr/local/bin/qt4a-manage", line 8, in
sys.exit(qt4a_manage_main())
File "/usr/local/lib/python3.7/site-packages/qt4a/management.py", line 180, in qt4a_manage_main
args.func(args)
File "/usr/local/lib/python3.7/site-packages/qt4a/management.py", line 70, in install_qt4a_driver
copy_android_driver(device_id, args.force)
File "/usr/local/lib/python3.7/site-packages/qt4a/androiddriver/androiddriver.py", line 190, in copy_android_driver
install_qt4a_helper(adb, root_path)
File "/usr/local/lib/python3.7/site-packages/qt4a/androiddriver/androiddriver.py", line 87, in install_qt4a_helper
adb.install_apk(apk_path)
File "/usr/local/lib/python3.7/site-packages/qt4a/androiddriver/adb.py", line 945, in install_apk
result = self._install_apk(tmp_path, package_name, reinstall)
File "/usr/local/lib/python3.7/site-packages/qt4a/androiddriver/adb.py", line 869, in _install_apk
if b'Success' in ret:
TypeError: 'in ' requires string as left operand, not bytes

需求支持Android9.0

目前支持到8.1,但目前已经有一部分的终端更新到Android9.0。可否后续支持8.1以上的版本。

执行demo工程的示例脚本提示超时

机器信息及版本

ViVo X7Plus 安卓版本:5.1.1
QT4A版本:2.2.44

以下是错误信息详情:

步骤1: 1、登录Android demo
RESOURCE: acquire resource (res_type:android, res_group:None, condition:{}) successfully
c402489(vivo X7Plus arm64-v8a Android 5.1.1)
ENVIRONMENT: 申请 Android 设备成功:vivo X7Plus(c402489)
INFO: device=c402489(vivo X7Plus arm64-v8a Android 5.1.1)
2019-09-04 11:45:26,193 19312 执行shellc402489 sh /data/local/tmp/qt4a/SpyHelper.sh runServer "com.test.androidspy" TimeoutError(u'Execute timeout',)
Traceback (most recent call last):
File "E:\QT4ADemoProj-master\qt4a\androiddriver\adbclient.py", line 229, in call
ret = method(*args, **kwds)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\adbclient.py", line 353, in shell
result = ADBPopen(self._sock, timeout=kwds['timeout']).communicate()
File "E:\QT4ADemoProj-master\qt4a\androiddriver\adbclient.py", line 186, in communicate
if self._running: raise TimeoutError('Execute timeout')
TimeoutError: Execute timeout
2019-09-04 11:45:26,196 19312 Exec adb shell failed: Run cmd shell c402489 sh /data/local/tmp/qt4a/SpyHelper.sh runServer "com.test.androidspy" failed
Traceback (most recent call last):
File "E:\QT4ADemoProj-master\qt4a\androiddriver\adb.py", line 281, in run_adb_cmd
cmd, *args, sync=sync, timeout=timeout, **kwargs)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\adb.py", line 202, in run_adb_cmd
return self._adb_client.call(cmd, self._device_name, *args, sync=sync, retry_count=1, timeout=timeout)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\adbclient.py", line 266, in call
if ret == None: raise TimeoutError(u'Run cmd %s %s failed' % (cmd, ' '.join(args)))
TimeoutError: Run cmd shell c402489 sh /data/local/tmp/qt4a/SpyHelper.sh runServer "com.test.androidspy" failed
CRITICAL: run_test执行失败
Traceback (most recent call last):
File "c:\Python27\lib\site-packages\testbase\testcase.py", line 701, in _thread_run
getattr(self._testcase, it)()
File "demotest\hello.py", line 25, in run_test
app = DemoApp(device)
File "E:\QT4ADemoProj-master\demolib\demoapp.py", line 19, in init
super(DemoApp, self).init(self.package_name, device) #第一个参数传入主进程名,在demo app中,主进程名和包名相同
File "E:\QT4ADemoProj-master\qt4a\androidapp.py", line 56, in init
self._device.wake_screen() # 唤醒屏幕
File "E:\QT4ADemoProj-master\qt4a\device.py", line 751, in wake_screen
return self._device_driver.wake_screen(wake)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 534, in wake_screen
self.send_key(KeyCode.KEYCODE_POWER)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 616, in send_key
return self._send_command('SendKey', Keys=keys)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 366, in _send_command
result = self.client.send_command(cmd_type, **kwds)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 92, in client
self._client = self.run_server()
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 349, in run_server
ret = self._run_server(server_name)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 302, in _run_server
ret = self.run_driver_cmd('runServer', server_name, root=self.adb.is_rooted(), retry_count=1, timeout=10)
File "E:\QT4ADemoProj-master\qt4a\androiddriver\devicedriver.py", line 71, in run_driver_cmd
raise QT4ADriverNotInstalled('Please install QT4A driver first')
QT4ADriverNotInstalled: Please install QT4A driver first

c402489的截图:E:\QT4ADemoProj-master\HelloTest_c402489_1567568726.2.png
INFO: logcat日志
设备:c402489:E:\QT4ADemoProj-master\HelloTest_c402489_1567568726.log
INFO: QT4A日志
qt4a_HelloTest_1567568726.log:E:\QT4ADemoProj-master\qt4a_HelloTest_1567568726.log
INFO: 释放设备资源
INFO: 释放设备资源

logcat信息

D/WorkerThreadMonitor(26407): Kill MSF check result[ senderSize:0,sendInterval:6845965,receiveInterval=6845963,addCmdCount=0

D/DataFormatter( 3403): Special bytes : 0

D/DataUsageService( 3403): NetSpeed 0K/s

D/AndroidRuntime(16419): >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<

D/AndroidRuntime(16419): CheckJNI is OFF

D/AndroidRuntime(16419): Calling main entry com.test.androidspy.SpyHelper

I/HelperUtil(16419): MainLoop is Looper (main, tid 1) {184d9e9c}

D/idmap (16436): error: no read access to /vendor/overlay: No such file or directory

I/HelperUtil(16419): dexloaderPath=/data/local/tmp/qt4a/libdexloader64.so

W/System.err(16419): java.lang.reflect.InvocationTargetException

W/System.err(16419): at java.lang.reflect.Method.invoke(Native Method)

W/System.err(16419): at java.lang.reflect.Method.invoke(Method.java:372)

W/System.err(16419): at com.test.androidspy.HelperUtil.setsid(HelperUtil.java:1353)

W/System.err(16419): at com.test.androidspy.SpyHelper.run(SpyHelper.java:116)

W/System.err(16419): at com.test.androidspy.SpyHelper.main(SpyHelper.java:98)

W/System.err(16419): at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)

W/System.err(16419): at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)

W/System.err(16419): Caused by: android.system.ErrnoException: setsid failed: EPERM (Operation not permitted)

W/System.err(16419): at libcore.io.Posix.setsid(Native Method)

W/System.err(16419): ... 7 more

I/System.out(16419): service com.test.androidspy start

W/System.err(16419): java.io.IOException: Operation not permitted

W/System.err(16419): at android.net.LocalSocketImpl.bindLocal(Native Method)

W/System.err(16419): at android.net.LocalSocketImpl.bind(LocalSocketImpl.java:309)

W/System.err(16419): at android.net.LocalServerSocket.(LocalServerSocket.java:48)

W/System.err(16419): at com.test.androidspy.SocketServer.run2(SocketServer.java:184)

W/System.err(16419): at com.test.androidspy.SocketServer.run(SocketServer.java:203)

W/System.err(16419): at com.test.androidspy.SpyHelper.run(SpyHelper.java:146)

W/System.err(16419): at com.test.androidspy.SpyHelper.main(SpyHelper.java:98)

W/System.err(16419): at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)

W/System.err(16419): at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)

I/art (16419): System.exit called, status: 0

I/AndroidRuntime(16419): VM exiting with result code 0.

D/DataFormatter( 3403): Special bytes : 0

D/DataUsageService( 3403): NetSpeed 0K/s

D/VPS ( 1418): permission=com.bbk.iqoo.logsystem.permission.READ_DATA; It's VivoPermissionType.LAST, then PERMISSION_GRANTED!

Android 7.1.1 webview查找控件的时候发生了crash

是Android版本过低了么? android.view.textclassifier.TextClassifier 需要API 26
Build: Xiaomi/sagit/sagit:7.1.1/NMF26X/V9.2.4.0.NCACNEK:user/release-keys

java.lang.NoClassDefFoundError: android.view.textclassifier.TextClassifier
at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
at java.lang.Class.getDexCacheType(Class.java:2551)
at java.lang.reflect.Method.getReturnType(Method.java:150)
at java.lang.Class.getDeclaredMethods(Class.java:1811)
at com.test.androidspy.HelperUtil.getMethodBySign(HelperUtil.java:355)
at com.test.androidspy.WebViewManager.chromiumEvalScript(WebViewManager.java:403)
at com.test.androidspy.WebViewManager.evalScript(WebViewManager.java:183)
at com.test.androidspy.ActivityInspect.onRecv(ActivityInspect.java:1624)
at com.test.androidspy.SocketServer$ServerBase.run(SocketServer.java:61)
at com.test.androidspy.SocketServer$LocalServerThread.run(SocketServer.java:136)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.textclassifier.TextClassifier" on path: DexPathList[[zip file "/data/app/com.google.android.webview-1/base.apk"],nativeLibraryDirectories=[/data/app/com.google.android.webview-1/lib/arm, /data/app/com.google.android.webview-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at libcore.reflect.InternalNames.getClass(InternalNames.java:53)
... 9 more

qt4a和uispy 与jdk10不兼容

系统jdk版本为10,在使用qt4a-manage repack-apk -p对apk重打包出错,看报错提示,应该jdk10的jarsigner 命令参数有所改变,导致recapk.py line129 代码出错。

uispy 无法获取控件,报错提示‘run ls -l xxxxxxx failed

image
image

log UnicodeEncodeError

--- Logging error ---
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1028, in emit
    stream.write(msg + self.terminator)
UnicodeEncodeError: 'utf-8' codec can't encode character '\udf3f' in position 1582: surrogates not allowed
Call stack:
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/testbase/testcase.py", line 703, in _thread_run
    getattr(self._testcase, it)()
  File "/Users/coye/workspace/pyProjects/qta_gytestproj/qta_gytest/lejuan/lj_test.py", line 32, in run_test
    lj_page=wxapp.go_recommend()
  File "/Users/coye/workspace/pyProjects/qta_gytestproj/qta_gylib/gy_page/home_page.py", line 51, in go_recommend
    return LJPage(self.app)
  File "/Users/coye/workspace/pyProjects/qta_gytestproj/qta_gylib/gy_page/lj_page.py", line 24, in __init__
    super(LJPage, self).__init__(app)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/wxmplib/mini_program.py", line 275, in __init__
    super(WXMPPage, self).__init__(webview)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4w/webcontrols.py", line 1101, in __init__
    self.wait_for_ready()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4w/webcontrols.py", line 1168, in wait_for_ready
    if self.ready_state == 'complete':
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4w/webcontrols.py", line 1143, in ready_state
    return self.exec_script('document.readyState')
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4w/util.py", line 156, in wrap_func
    ret = func(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4w/webcontrols.py", line 1191, in exec_script
    return self._webdriver.eval_script(self._locator, script)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4a/androiddriver/webdriver.py", line 2065, in eval_script
    return super(AndroidWebDriver, self).eval_script(frame_xpaths, script)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4w/webdriver/webdriver.py", line 381, in eval_script
    return self._webview.eval_script(frame_xpaths, script)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4a/andrcontrols.py", line 1769, in eval_script
    return self.webview_impl.eval_script(frame_xpaths, script)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/wxmplib/util.py", line 91, in webview_impl
    self._webview_impl = XWalkChromiumWebView(title=self.__class__.title, url=self.__class__.url, *self._args, **self._kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/wxmplib/util.py", line 63, in __init__
    super(XWalkChromiumWebView, self).__init__(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4a/andrcontrols.py", line 1874, in __init__
    self._page_debugger = self.get_debugger()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt4a/andrcontrols.py", line 1912, in get_debugger
    return self._chrome_master.find_page(url=url, title=self._title)  # 获取最后一个页面
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chrome_master/__init__.py", line 164, in find_page
    page_list = self.get_page_list()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chrome_master/__init__.py", line 131, in get_page_list
    page_info = self.get_page_info(page['webSocketDebuggerUrl'], page['url'], page['title'])
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chrome_master/__init__.py", line 81, in get_page_info
    result['body'] = debugger.runtime.eval_script(None, 'document.body.innerText')
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/chrome_master/runtime_handler.py", line 180, in eval_script
    logger.info('[%s][%s][retn] %s' % (self.__class__.namespace, self._tag, result))
Message: '[Runtime][wxfdcee92a299bcaf1:pages/index/main.html:INVISIBLE][retn] S腾讯公益\n送去温暖与关爱\n每月一捐\n一对一捐助\n运动捐步\n项目分类\n陪他们健康快乐长大\n地震孤儿需要您的爱\n让寒门学子实现梦想\n邮爱自强班\n帮他们早日治愈回家\n照亮大病家庭康复路\n一对一\n给贫困学子幸福童年\n代理爸妈助养一对一\n送去治疗希望\n大病患儿想要活下去\n解决乡村学校口罩难\n罩你返校平安\n今日推荐\n吃一顿热腾腾的午餐\n免费午餐小善大爱\n远离饥饿\n看望贫困老人,为他们送去生活用品和陪伴\n助贫困老人安放余生\n送去希望\n帮助更多的患儿进行肝移植,不因贫惧放弃治疗\n仁济儿童救肝计划\n继续治疗\n大家最爱捐 | 极热接龙\n全部\n让大病患者不再心碎\n上周接龙总长1053公里\n泰安市泰山慈善基金会\n保护孩子每一次呼吸\n上周接龙总长50公里\n深圳市社会公益基金会\n事实孤儿开学礼包\n上周接龙总长80公里\n爱德基金会\n希望灯塔\n上周接龙总长23公里\n北京天使妈妈慈善基金会\n身边公益\n愿残疾人追求美好生活的权力\n困境残疾人救助\n世界那么大,他们却失去了最真的牵挂\n为失独家庭增温助力\n公益还可以这样玩\n帮助疫情影响下的果农产品正常发运、上市\n日行一善 #451\n记录我的荣耀时刻\n益刻\n善念起,明灯燃\n为他祈福\n不一样的的愿望\n生日一起捐\n疾病救助:帮他们恢复健康\n帮他们听见世界\n爱的分贝聋儿救助\n送去温暖\n帮助异地求医患者及家庭,为他们提供医疗补贴和防护物资\n拯救疫情下的重病娃\n助力康复\n帮他们恢复健康走出病房,有机会实现梦想\n血癌牵绊着的梦想\n献一份爱\n扶贫救灾:点燃生活希望\n让好人有前行力量\n致敬困境中的行善者\n致敬行善者\n让贫困地区的僧人们老有所养,老有所医\n经藏公益僧伽医养\n医疗保障\n慰问帮扶战斗在防疫一线的工作人员,减轻他们的后顾之忧\n人民战“疫”党旗飘扬\n关怀一线\n教育助学:孩子的读书梦\n帮湖北学子渡过难关\n邮爱同行,共抗疫情\n求学梦想\n减轻自闭症患儿家庭的经济负担,让他们有机会接受康复训练\n照亮自闭患儿的明天\n照亮未来\n帮助珍珠生完成高中、考上大学,从而点亮生命、改变人生\n捡回珍珠计划\n改变命运\n精选进展\n一出生就被放弃的小生命\n早产微宝贝紧急救助\n好好长大\n帮助因战乱丧失健康四肢的儿童安装义肢\n叙利亚肢残儿童救助\n健康生活\n这里有象群、水鹿、野牛!一起守护他们的家\n热带雨林的深夜食堂\n守护大象\n环境保护:守护绿水青山\n1棵成年梭梭能固定10㎡荒漠\n一亿棵梭梭\n恢复生态\n留住青山绿水,遏制石漠化危机\ne绿黔行 网上植树\n种棵小树\n促进长江水生态修复,保护水生物种的生物多样性\n守护长江 保护水源\n改善水生态\n之*捐助了【地震孤儿需要您的爱】项目\n5 秒前\n笑**云捐助了【杨幂邀您壹起净水】项目\n12 秒前\n希************)捐助了【罩你返校平安】项目\n18 秒前\nC*****、捐助了【地震孤儿需要您的爱】项目\n21 秒前\n剑***里捐助了【照亮大病家庭康复路】项目\n24 秒前\nc*捐助了【让大病患者不再心碎】项目\n25 秒前\n旺*捐助了【照亮大病家庭康复路】项目\n27 秒前\n敬********!捐助了【致敬困境中的行善者】项目\n27 秒前\nA*******꧂捐助了【仁济儿童救肝计划】项目\n32 秒前\n医*******e捐助了【热带雨林的深夜食堂】项目\n33 秒前\n明*捐助了【困境儿童关怀】项目\n41 秒前\n明****彩捐助了【广东战疫天使守护计划】项目\n43 秒前\n那******远捐助了【大家来帮自强姊妹花】项目\n47 秒前\n黄*捐助了【让大病患者不再心碎】项目\n48 秒前\n小**\udf3f捐助了【地震孤儿需要您的爱】项目\n48 秒前\n剑***里捐助了【邮爱自强班】项目\n50 秒前\n医*******e捐助了【野象不饿】项目\n52 秒前\n美*莎捐助了【保护孩子每一次呼吸】项目\n53 秒前\n敬********!捐助了【爱的分贝聋儿救助】项目\n56 秒前\n等***********3捐助了【照亮大病家庭康复路】项目\n57 秒前\nl*q捐助了【邮爱自强班】项目\n1 分钟前\n意*捐助了【大病患儿想要活下去】项目\n1 分钟前\n剑***里捐助了【地震孤儿需要您的爱】项目\n1 分钟前\n亮*******风捐助了【爱的分贝聋儿救助】项目\n1 分钟前\n小***爱捐助了【地震孤儿需要您的爱】项目\n1 分钟前\n千**鸣捐助了【黄果柑助农计划】项目\n1 分钟前\nl*******g捐助了【邮爱自强班】项目\n1 分钟前\n敬********!捐助了【保护孩子每一次呼吸】项目\n1 分钟前\n听******\ue031捐助了【邮爱自强班】项目\n1 分钟前\nM*****R捐助了【罩你返校平安】项目\n1 分钟前\n截止到1分钟前,已有\n3 3 2 , 9 0 8 , 0 8 0 次爱心捐助\n8 , 5 4 8 , 7 2 9 , 2 8 2 元总捐款金额\n7 6 , 4 8 5 个项目获得帮助\n已经到底了,点击查看更多公益项目吧\n服务协议 平台介绍 建议反馈\n统一社会信用代码:531000005000206140\n投诉与建议:[email protected]\n首页\n公益小游戏\n我的'
Arguments: ()

使用genymotion模拟器执行截图时截图进程可能crash

机型及系统版本:genymotion模拟器 google nexus4 android 5.1.0

report Error:IOError: [Errno 2] No such file or directory: 'c:\users\leoltc~1\appdata\local\temp\tmpqfs1mt.jpg'

stack:image

reason:截图工具在genymotion模拟器上运行可能会crash,导致截图失败

解决:更换成真机之后该问题未再发生

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.