[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

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Selenium,可以使用WebDriver对象的switch_to_alert()方法来定位和处理各种弹窗,包括alert、confirm和prompt弹窗。然而,对于自定义弹窗Selenium自带的方法可能无法正常使用,此时可以借助JavaScript方法来处理。 如果你想要去掉淘宝首页的自定义弹窗,你可以按照以下步骤进行操作: 1. 找到自定义弹窗的元素,并修改其样式为"display='none'"。这样可以将弹窗隐藏起来。 2. 使用JavaScript脚本来执行上述操作,例如使用`document.getElementById("id属性值").style.display="none"`,或者使用其他的JavaScript获取元素的方式。 3. 使用WebDriver的execute_script()方法来执行上述JavaScript脚本。 4. 最后,关闭浏览器。 以下是一个示例代码,演示如何隐藏页面的自定义弹窗: ```python # 1.导入selenium from selenium import webdriver from time import sleep # 2.打开浏览器 driver = webdriver.Chrome() # 3.打开页面 url = "https://www.taobao.com/" driver.get(url) sleep(5) # 4.关闭自定义弹窗 js = 'document.querySelector("body > div.tbh-fixedtool.J_Module > div").style.display="none"' driver.execute_script(js) sleep(2) # 5.关闭浏览器 driver.quit() ``` 通过以上步骤,你可以成功隐藏页面的自定义弹窗。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python Selenium弹窗处理](https://blog.csdn.net/liucaixin2016/article/details/127259875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Selenium基础 — 浏览器弹窗操作](https://blog.csdn.net/m0_59868866/article/details/127575541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值