因为测试须要,需在 Centos 下进行 liunxGUI 软件自动化测试,所以用到了 python 的 Dogtail 库,继而应用 Dogtail 的 sniff 控件获取工具,然而遇到了很多问题记录如下。
1 环境
Centos 7
Python3.9.0
Python2.7.5
2 应用 Python3 装置 Dogtail
pip3 install dogtail
- 我这里默认曾经装置好了,如下:
3 gi 模块装置
- 输出
sniff
,关上 sniff 控件辨认工具,然而间接报错
ImportError: No module named 'gi'
- 查阅很多材料说要装置
python-gobject
,所以装置下这个软件
yum install python-gobject
4 pyatspi 模块装置
- 装置完后,持续输出
sniff
,又提醒如下:
ModuleNotFoundError: No module named 'pyatspi'
- 依据网友材料,应该是短少了 pyatspi,所以装置它,不同的操作系统装置的包名称不一样,如下,这里是 centos 应用 yum 装置
# OpenSUSE, 您须要装置 python-atspi
zypper in python-atspi
# Ubuntu 和衍生产品, 它是 python-pyatspi
apt-get install python-pyatspi
# RedHat,Fedora 和衍生品来说, 它是 at-spi-python
yum install at-spi-python
5 批改 sniff 的 python 版本
- 好了,以上装置完后,仍然提醒如下,然而明明曾经装置了:
ModuleNotFoundError: No module named 'pyatspi'
- 狐疑是 python 版本的问题,因为有 python2.7.5 和 python3.9.0,好了批改 sniff 文件
- 查找到 sniff 的目录,大家文件,发现应用的是 python3.9,改为 python2.7
6 装置 pip(python2)
- 以上批改完后,持续输出 sniff,然而还是报错,提醒:
没有 dogtail.config 这个模块
- 剖析起因是咱们之前装置 dogtail 的时候,应用的是 pip3 装置的,即环境装置到了 python3 里边,然而咱们以上步骤曾经把 sniff 的环境改为 python2.7.5 了,然而 python2 里咱们是没有装置 dogtail 的,所以装置 dogtail
- 输出
pip install dogtail
, 然而提醒没有 pip 这个 bash,即没有 pip 这个命令,这里的 pip 指的是 python2 环境的; - 那就装置 pip2,命令如下:
yum install python-pip
## 7 批改 pip 的命令解析器为 python2 - 以上执行完后,输出
pip
,还是提醒没有这个文件或目录,可是曾经装置好了呀 - 批改
/usr/bin/pip
, 把首行中的 python3 改为 python2.7 - 再次输出
pip
,OK 了
8 python2 环境装置 dogtail
- 输出
pip install dogtail
, 如下:
9 再次启动 sniff
- 输出
sniff
,这下 OK 了,如下;