因为测试需要,需在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了,如下;