[python] 使用selenium+pywinauto模块处理弹窗中的图片/文件上传
前言
在我们使用selenium模块操作浏览器完成一些任务时经常会遇到一些需要上传文件/图片的弹窗。例如,我们在编辑发送邮件时需要上传文件:
这些弹窗属于系统页面而非浏览器页面,所以只使用selenium模块是定位不到弹窗页面中的元素的,从而也就无法对元素进行操作完成上传。
前期准备
selenium模块
selenium是一个在自动化测试中广泛应用的模块,其在爬虫领域也有着很广泛的使用。
模块安装
打开终端输入:
pip install selenium
这里有可能会遇到下载到一半挂掉的情况,这里给大家准备了一个selenium的清华镜像源
pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ selenium
驱动安装配置
本篇文章使用Edge浏览器做示范,所以这里安装并配置Edge驱动
需要下载和配置其他浏览器的可以参考一下这位大佬的文章
selenium用法详解【从入门到实战】【Python爬虫】【4万字】
首先打开Edge浏览器中的设置
点击关于Microsoft Edge,获取Edge浏览器的版本
打开Edge浏览器驱动的官网进行下载,我这里是118.0.2088.61的64位版本,大家可以按照自己的版本下载,如果没有自己的版本安装最新版本的即可!
安装完成后,压缩包中就只有一个名为msedgedriver.exe的文件
将这个文件移动到你在编译器中使用的本地python环境中,和python.exe处于同级目录中即可!
在编译器中运行下列代码能够成功打开网站就代表成功配置了驱动
from selenium import webdriver
driver_edge=webdriver.Edge()
driver_edge.get("https://www.baidu.com/")
pywinauto
pywinauto是一个能够自动化 Windows