一、图片上传简介
实现按钮上传文件,其实挺简单的:在实现UI自动化测试过程中,有一类需求是实现图片上传,这种需求根据开发的实现方式,UI的实现方式也会不同,比较简单的一种就是当开发直接使用file类型的input实现图片文件的上传时,实例:<input type="file" name=''filename">,我们可以直接利用Selenium提供的send_keys()方法实现文件上传,今天的内容就来解决这种类型的图片上传问题(但是因为依赖开发的实现,而且目前实现基本都会利用框架,所以这种实现方式有很大的局限性)
二、win10下安装PyUserInput模块
在自动化测试工具selenium(webdriver)中是包含鼠标和模块操作的,但是要先获取到页面元素才能使用键盘和鼠标,在有些场景这种方式是不够的(有些鼠标或键盘操作不依赖于页面元素)。这时候就用到了PyUserInput这个模块,其中就包含了对鼠标和键盘操作的模块。
但在python环境下,使用pip install pyuserinput进行安装的时候出现了问题:
从提示信息上看是由于缺少了依赖模块pyHook,使用pip也没法安装pyHook模块,因此只能从http://www.lfd.uci.edu/~gohlke/pythonlibs/网站搜索pyHook下载到本地(win-64bit),然后使用pip命令进行安装:
pip3 install C:UsersLiGangDownloadspyHook-1.5.1-cp35-cp35m-win_amd64.whl
安装完成pyHook之后,再次执行pip install pyuserinput时候,又出现了不能自动安装pywin32模块,按照上面的网站搜索下载pywin32模块到本地(win-64),然后使用pip命令安装:
pip3 install C:UsersLiGangDownloads pywin32-227-cp37-cp37m-win_amd64.whl
再次执行pip install pyuserinput安装,成功了。
在python编辑器中输入如下代码,运行通过,则表明键盘和鼠标操作功能已可以使用。
三、案例
我们使用的案例是:http://xx.xxx.47.131/verydows/ 系统个人资料修改模块的头像修改:
实现这个按钮上传文件,其实挺简单的:
但是在其后面弹出的图片保存按钮,就遇到了麻烦,各种方式都试过了,元素可以识别到,但是各种定位方法都不行。
在各种方式尝试过后,终于找到一个方法解决了这个问题,那就是PyMouse模块,我们通过这个模块定位到“保存头像”按钮所在的坐标位置,然后进行点击操作,最终实现了图片的上传及保存。
欢迎关注作者,如果觉得写的还不错,就给点个赞同、喜欢、收藏(后续持续更新)。
【全文手打 如需转载 请标注此出处】