1. 简介
在使用 Selenium 进行 Web 自动化测试时,有时需要获取页面加载的所有静态资源文件链接(例如:CSS、JavaScript 文件等),以便进一步分析页面性能或者进行其他操作。本文将介绍如何使用 Python3 和 Selenium 来实现这个功能。
2. 准备工作
2.1 安装 Selenium
首先,我们需要安装 Selenium。可以使用 pip 命令来安装:
pip install selenium
2.2 下载浏览器驱动
Selenium 需要一个对应的浏览器驱动程序,这个驱动程序负责与浏览器进行交互。具体使用哪种浏览器,需要根据自己的需求来决定。
在本文中,我们以 Chrome 浏览器为例进行演示。可以从以下网址下载对应版本的 Chrome 驱动程序:https://sites.google.com/a/chromium.org/chromedriver/downloads
下载并解压后,将驱动程序放在一个合适的位置,例如放在系统的 PATH 环境变量中指定的目录下。
3. 获取页面加载的静态资源文件链接
下面的代码演示了如何使用 Selenium 获取页面加载的所有静态资源文件链接:
from selenium import webdriver
# 设置 Chrome 驱动程序的路径
driver_path = "/path/to/chromedriver"
# 创建 Chrome 浏览器的实例
driver = webdriver.Chrome(driver_path)
# 打开需要获取链接的页面
driver.get("https://example.com")
# 获取页面加载的所有静态资源链接
static_links = []
for entry in driver.execute_script("return performance.getEntries()"):
if entry['initiatorType'] == 'script' or entry['initiatorType'] == 'link':
static_links.append(entry['name'])
# 输出链接
for link in static_links:
print(link)
# 关闭浏览器实例
driver.quit()
4. 解析页面加载的资源链接
上面的代码可以获取页面加载的所有静态资源文件链接,但是这些链接可能是相对路径或者绝对路径,可能需要进一步处理才能得到完整的 URL 地址。
可以使用 Python 内置的 urllib.parse 模块来处理相对路径和绝对路径之间的转换。
下面的代码演示了如何解析页面加载的资源链接:
from urllib.parse import urljoin
base_url = "https://example.com" # 页面的基础 URL
for link in static_links:
absolute_url = urljoin(base_url, link)
print(absolute_url)
5. 总结
本文介绍了如何使用 Python3 和 Selenium 获取页面加载的所有静态资源文件链接。首先,我们安装了 Selenium,并下载了对应浏览器的驱动程序。然后,使用 Selenium 打开页面并执行 JavaScript 代码来获取页面的性能数据。最后,使用 Python 内置的 urllib.parse 模块解析所获得的链接,得到完整的 URL 地址。
通过获取页面加载的静态资源文件链接,我们可以进一步分析页面的性能,或者进行其他操作,例如下载这些文件、检查链接的有效性等。
请注意,本文演示的代码仅供参考,实际使用时可能需要根据自己的需求进行调整和扩展。