Python Selenium 爬取弹出窗口内容实战与常见问题解决

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13| 5人浏览过
原创

本文介绍使用 Python 的 Selenium 库抓取页面点击后弹出的窗口信息。通过 Firefox 浏览器配合 GeckoDriver,利用 XPath 定位元素并切换窗口句柄获取数据。针对自动化测试中点击按钮弹窗不显示的问题,提供使用模拟键盘 Enter 键替代 click() 的解决方案,并附带完整代码示例。

Python Selenium 爬取弹出窗口内容实战

本文内容仅作为个人学习笔记整理。

本实例演示如何在 Python 环境下爬取弹出窗口的内容。在实际网页交互中,某些关键信息往往隐藏在点击操作后弹出的窗口内,此时常规的页面抓取方法可能无法直接获取所需数据。

本文选用 Selenium 工具进行实现,读者可自行查阅相关资料。安装过程相对繁琐,且本文测试环境为 Firefox 浏览器。未选择 IE 浏览器是因为新版 IE 在 Selenium 环境下存在兼容性问题,目前尚未找到更优的替代方案。


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os,time

browser=webdriver.Firefox(executable_path='d:\\Anaconda\\pkgs\\spyder-3.2.8-py36_0\\geckodriver.exe') #括号中的也是非典型的安装firefox驱动的方法,常规的方法我一直试的不行,但这种方法包管行.
browser.get('http://XXX.XXX.com/fenxi/yazhi-734155') #输入你的目标网址
time.sleep(3) #打开网址后休息3秒钟,可用可不用
browser.find_element_by_xpath('//*[@id="6"]/td[4]').click() #找到想要点击的元素,然后进行点击动作,让窗口弹出来
handle=browser.current_window_handle #获得当前窗口,也就是弹出的窗口句柄,什么是句柄我也解释不清楚,反正它代表当前窗口
browser.switch_to_window(handle) #转到当前弹出窗口
s=browser.find_element_by_xpath('//*[@id="tipdiv"]/div[2]/table/tbody') #找到装有你要信息的元素
print(s.text) #打印文本内容
time.sleep(2) #休息2秒,让浏览器喘口气
browser.find_element_by_xpath('//*[@id="link106"]').click() #最后关掉弹出窗口. 这又是一个非典型方法,我是直接找到小窗口的叉叉来点击关掉了,实际上Selinium有关闭当前窗口的方法,也就是close()或者quit(),但问题是搞来搞去不行啊?我的理解是目前的窗口依然是那个弹出的窗口,但handle.close等其它方法都不行. 所以我干脆用这样的方法,找到叉叉的元素,然后点击.

在元素定位方面,推荐使用 XPath 方式。一个便捷技巧是利用浏览器开发者工具,找到目标元素的源代码后,右键选择“Copy Xpath”即可快速生成定位路径,操作十分高效。

自动化测试中弹窗不显示的解决方案

补充知识:在 Python 自动化测试场景中,若点击“查看”按钮后弹窗未能正常显示,该如何处理?

在使用 Python 编写 UI 自动化测试脚本时,可能会遇到一种情况:明明代码中已经调用了 .click() 方法点击“查看”按钮,但预期的弹窗却始终无法弹出。

针对上述问题,可以尝试模拟键盘操作来解决。通过调用 .send_keys(Keys.ENTER) 方法模拟按下回车键,往往能有效触发弹窗显示。

具体代码实现如下:

driver.find_element_by_xpath("//*[@id='main']/div/div[3]/div/div/div[2]/div/div[2]/div[2]/div/div[2]/table/tbody/tr/td[9]/div/button/span").click()

将上述代码修改为:

driver.find_element_by_xpath("//*[@id='main']/div/div[3]/div/div/div[2]/div/div[2]/div[2]/div/div[2]/table/tbody/tr/td[9]/div/button/span").send_keys(Keys.ENTER)

以上关于使用 Python 爬取弹出窗口信息的实例即为全部内容,希望能为读者提供参考,并欢迎大家继续支持相关技术社区。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。