首页 > 解决方案 > Selenium 没有将精确文本从 excel 复制到日期文本框

问题描述

我正在尝试从 excel 中检索日期并使用 send_keys()函数将其输入到文本框中。我从 excel 中检索的日期是4/10/2019,但是当我运行我的脚本时,显示的结果是20191004000000。我可以知道,我该如何解决这个问题,或者有没有其他方法可以输入date而不是使用send_key()?我见过有人用

IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
jse.ExecuteScript($"arguments[0].value='{employmentParam.StartDate}';", wb);

输入值,但不知道它做了什么。

我尝试不添加str()around date,但错误变成 了object of type 'datetime.datetime' has no len()

在这里,我从 excel 中读取日期

date = XLUtlis.readData(path, 'BO', r, 19)

date在这里我写到textbox

driver.find_element_by_xpath('//[@id="mainContentHolder_dtlNew_txtOriginalEsd"]').send_keys(str(date))

编辑:

我发现当脚本从 excel 复制时,它以某种方式复制2019-10-04 00:00:00,但是当它通过 输入时send_keys(),它忽略了特殊符号,例如 - :. 知道为什么会这样。

标签: python-2.7selenium

解决方案


首先,您需要将数据类型从日期时间转换为字符串。然后您可以将 send_keys 与字符串值一起使用。根据我的经验,我推荐使用字符串类型来设置输入元素的值。

start_date = employmentParam.StartDate.strftime("%d/%m/%Y")
driver.find_element_by_xpath('//[@id="mainContentHolder_dtlNew_txtOriginalEsd"]').send_keys(start_date)

推荐阅读