07 2023 档案
摘要:jsonpickle模块可以把对象序列化为JSON文件, 还是比较方便的. 但是并不是所有变量都需要序列化的, 比如有些私有变量就不需要序列化, 下面是实现方法: ```python import jsonpickle class NoSerailPrivates: '''表示不序列化私有变量, 以
阅读全文
摘要:有时候atx-agent进程会意外停止, 需要手工启动, 过程如下: - 用`adb shell`命令, 进入命令行模式, 在此模式下可以使用`pwd`, `ls`等linux命令 - 进入atx-agent目录下, 默认是: `/data/local/tmp` 命令: `cd /data/loca
阅读全文
摘要:python中有时候需要用到全局变量, 并且这个全局变量需要跨文件, 跨模块共享. 为此, 我设计了一个全局对象, 它有以下特点: - 如果引用不存在的属性, 不报错, 而是返回None - 如果为不存在的属性赋值, 则会自动生成这个属性, 后续就可以正常引用这个属性, 就像对象本身具有此属性一样
阅读全文
摘要:python在用tk编程时, 界面响应函数最好在另外一个线程中运行, 以免界面没有响应. 为方便使用, 封装了一个装饰器, 调用函数时自动在另外一个线程中运行. 示例代码如下: ```python import threading def run_in_thread(func): def wrapp
阅读全文
摘要:传递一组无线按钮名称的列表, 返回用户选择的是哪个选项: ```python import tkinter as tk import threading from tkinter import Menu, Frame, Label class RatioButtons(tk.Frame): '''对
阅读全文
摘要:先上代码: ```python from tkinter import * root = Tk() selected_var = IntVar() radiobutton = Radiobutton(root, text='hzq1', variable=selected_var, value=88
阅读全文
摘要:simpledialog.askstring还是比较好用的, 能够很方便的获取用户输入的文本, 但是在多线程中会出现下面的错误: `_tkinter.TclError: window ".!_querystring" was deleted before its visibility changed
阅读全文
摘要:今天遇到一个奇怪的问题, 如下面的代码: ```python import tkinter as tk from tkinter import simpledialog def popup(): user_input = tk.simpledialog.askstring("输入对话框", "请输入
阅读全文
摘要:python的类型注释还是很方便的, 相当于动态语言中增加类型系统, 很方便支持代码自动补全. 但是它毕竟不是编译型语言, 如果引用的类型在后面定义, 就会出现找不到此类型的提示. 这时候只需要把这个类型当作字符串就可以了, 不仅不会报错, 仍然还会享受代码补全的好处. 如下所示: ```pytho
阅读全文
摘要:TK增加菜单项的编码是比较复杂的, 为方便使用, 我做了一下封装, 用户使用场景: ```python root = tk.Tk() AddMenuItem(root,'File.New.Close',lambda:print('111')) AddMenuItem(root,'File.Hzq',
阅读全文
摘要:直接上代码: ```python from tkinter import * def print_menu_items(menu): num_items = menu.index('end') # 最后一个菜单项的索引 for index in range(num_items+1): # 遍历所有的
阅读全文
摘要:python的lxml模块是处理xml文档的比较好用的工具, 其中的xpath函数可以检索指定的元素, 但是它不支持正则表达式, 比如某个属性的值是否匹配某个正则表达式, 就没有办法实现. 不过可以利用它的自定义函数扩展功能来实现, 如下代码所示: ```python import re from
阅读全文
摘要:源码如下: ```python def _install_uiautomator_apks(self): """ use uiautomator 2.0 to run uiautomator test 通常在连接USB数据线的情况下调用 """ self.shell("pm", "uninstall
阅读全文
摘要:minitouch是帮助模拟手机触摸的工具, atx-agent不安装它也可以. - 首先, 确定minitouch的下载地址, 如下面地址所示: `'https://github.com/openatx/stf-binaries/raw/0.3.0/node_modules/@devicefarm
阅读全文
摘要:atx-agent是运行在手机上的一个代理程序, 可以通过网络进行手机测试, 项目地址: https://github.com/openatx/atx-agent 通过阅读uiautomator2源码, 搞明白了判断的过程, 有如下心得: - 安装adbutils库, 建立Device对象, 下面的
阅读全文