如何将Excel中存储的Xpath值应用于Selenium循环实现自动输入
Selenium+openpyxl逐行操作改循环实现
固定行范围版本(完全匹配原代码2~8行的操作逻辑)
from openpyxl import load_workbook from selenium.webdriver.common.keys import Keys load_wb = load_workbook(filename, data_only=True) load_ws = load_wb['apple'] # 遍历行号2到8,range左闭右开所以结束值写9 for row in range(2, 9): xpath_val = load_ws[f'E{row}'].value input_val = load_ws[f'D{row}'].value # 跳过Xpath为空的行 if not xpath_val: continue elem = driver.find_element_by_xpath(xpath_val) elem.send_keys(Keys.CONTROL + 'a', Keys.DELETE) elem.send_keys(input_val)
通用自动遍历版本(无需手动指定行范围,自动处理所有有Xpath值的行)
from openpyxl import load_workbook from selenium.webdriver.common.keys import Keys load_wb = load_workbook(filename, data_only=True) load_ws = load_wb['apple'] # 跳过第一行表头,从第二行开始遍历所有行 for row in load_ws.iter_rows(min_row=2, values_only=False): xpath_val = row[4].value # E列是第5列,索引从0开始所以取4 input_val = row[3].value # D列是第4列,索引从0开始所以取3 if not xpath_val: continue elem = driver.find_element_by_xpath(xpath_val) elem.send_keys(Keys.CONTROL + 'a', Keys.DELETE) elem.send_keys(input_val)
注意事项
- Selenium 4.0及以上版本已弃用
find_element_by_xpath写法,建议替换为以下兼容写法:from selenium.webdriver.common.by import By elem = driver.find_element(By.XPATH, xpath_val) - 可自行添加
try-except异常捕获逻辑,处理Xpath无效、元素不可交互等异常场景,避免程序直接终止。
内容的提问来源于stack exchange,提问作者Slee
相关产品推荐
相关产品推荐

