selenium - 将存储在 Excel 中的 Xpath 值转换为 Selenium 循环
问题描述
所有 Xpath 值都输入到 Excel 的 E 列中。
在 E 列中找到 Xpath,然后将 D 列中输入的值输入到 Chrome。
我怎样才能使这段代码成为一个循环。
load_wb = load_workbook(filename, data_only=True)
load_ws = load_wb['apple']
elem=driver.find_element_by_xpath(load_ws['E2'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D2'].value)
elem=driver.find_element_by_xpath(load_ws['E3'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D3'].value)
elem=driver.find_element_by_xpath(load_ws['E4'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D4'].value)
elem=driver.find_element_by_xpath(load_ws['E5'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D5'].value)
elem=driver.find_element_by_xpath(load_ws['E6'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D6'].value)
elem=driver.find_element_by_xpath(load_ws['E7'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D7'].value)
elem=driver.find_element_by_xpath(load_ws['E8'].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D8'].value)`
解决方案
如果 Excel 表中有 7 行,您的代码可以简单地重写如下:
load_wb = load_workbook(filename, data_only=True)
load_ws = load_wb['apple']
for i in range(2,9):
elem=driver.find_element_by_xpath(load_ws['E' + str(i)].value)
elem.send_keys(Keys.CONTROL+'a',Keys.DELETE)
elem.send_keys(load_ws['D'+ str(i)].value)
如果行数不同或可能发生变化,则必须相应地更改 for 循环中使用的范围。
推荐阅读
- python - 如何在每行包含txt文件名的csv中导入txt文件内容
- amazon-redshift - 胶水加载作业不保留红移中的默认列值
- python - 具有独立进程的 Python 多进程日志记录
- docker - docker 中的 Systemd 服务或替代方案
- ios - 非矩形图像裁剪 SwiftUI?
- rust - 如何在返回类型上实现 trait 函数泛型
- appgallery-connect - 支付报错“serviceCatalog:X6”导致我的应用被拒绝怎么办?
- rust - 为什么 Rust 元组不使用方括号来访问里面的元素?
- angular - Angular Mat-Table:根据布尔值显示检查或 x
- r - 在特定模式之后提取某些单词,同时排除特定模式。在 R 中