如何查找动态表格单元格值的XPath?求Chrome进程CPU负载示例
动态表格中获取Chrome进程CPU负载的实现示例
针对目标页面的动态表格场景,以下是两种常用的实现方案:
Python + Selenium 自动化测试方案
适合编写稳定的自动化测试脚本,处理动态渲染的页面元素。
前置准备
- 安装依赖:
pip install selenium - 下载对应版本的ChromeDriver并配置到系统环境路径中
代码实现
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化驱动并访问目标页面 driver = webdriver.Chrome() driver.get("http://www.uitestingplayground.com/dynamictable") try: # 等待表格加载完成(最长等待10秒) table = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, "table")) ) # 遍历表头,获取CPU列的索引(XPath索引从1开始) cpu_col_index = None for idx, header in enumerate(table.find_elements(By.TAG_NAME, "th")): if header.text.strip() == "CPU": cpu_col_index = idx + 1 break # 定位Chrome进程的行,并提取对应CPU列的数值 chrome_row = table.find_element(By.XPATH, ".//tr[td[text()='Chrome']]") cpu_load = chrome_row.find_element(By.XPATH, f".//td[{cpu_col_index}]").text print(f"Chrome进程CPU负载: {cpu_load}") finally: # 关闭浏览器驱动 driver.quit()
关键说明
- 使用
WebDriverWait等待元素加载,避免动态渲染导致的元素未找到问题 - 通过表头确定CPU列索引,保证列顺序变化时代码仍能正常工作
- 用XPath精准定位Chrome进程的行,确保匹配目标数据
浏览器控制台调试方案
适合快速验证页面数据,直接在浏览器开发者工具控制台执行:
// 定位表格并提取数据 const table = document.querySelector('table'); const headerTexts = Array.from(table.querySelectorAll('th')).map(th => th.textContent.trim()); const cpuColumnIndex = headerTexts.indexOf('CPU'); const chromeRow = Array.from(table.querySelectorAll('tr')) .find(row => row.querySelector('td')?.textContent.trim() === 'Chrome'); const chromeCpuLoad = chromeRow?.querySelectorAll('td')[cpuColumnIndex]?.textContent; console.log('Chrome进程CPU负载:', chromeCpuLoad);
内容的提问来源于stack exchange,提问作者BugBee
相关产品推荐
相关产品推荐

