Python中使用Selenium向网页文本框输入DataFrame如何保留原始格式
问题原因
你当前采用逐列输入的逻辑,每列内容结尾添加换行符,导致所有列数据垂直堆叠,没有保留原有的行结构,不符合计算器的输入要求。
解决方案
直接将整个DataFrame转为对齐好的格式化纯文本后一次性输入,即可保留原有排版:
from selenium import webdriver import pandas as pd df = pd.read_csv("/Users/Test.csv") driver = webdriver.Chrome() driver.get("http://www.cgtcalculator.com/calculator.aspx") inputElement = driver.find_element_by_id("TEXTAREA1") # 先清空文本框默认内容 inputElement.clear() # 生成无索引、无表头的对齐文本,完全匹配原格式 formatted_input = df.to_string(index=False, header=False) # 一次性输入全部内容 inputElement.send_keys(formatted_input) driver.find_element_by_id("Button3").click() driver.find_element_by_id("Button1").click()
如果需要更精准匹配原有列宽,可以在to_string方法中添加col_space参数手动指定每列的宽度,例如:
formatted_input = df.to_string(index=False, header=False, col_space=[2, 12, 5, 6, 6, 3, 8])
你可以根据实际输入效果调整col_space的数值参数。
内容的提问来源于stack exchange,提问作者Tcs106
相关产品推荐
相关产品推荐

