【问题标题】:Insert date using datepicker in selenium VBA在 selenium VBA 中使用 datepicker 插入日期
【发布时间】:2020-12-11 01:47:57
【问题描述】:

使用 selenium VBA,我正在上传一些数据,并且需要使用 datepicker 插入一个日期。 这是具有日期选择器的网页的 html https://pastebin.com/yqf8H36k

我尝试使用SendKeys 直接发送日期,但是出现了日期选择器弹出窗口并且没有输入任何内容。

.FindElementById("date").SendKeys wsUpload.Range("B5").Value
.FindElementById("date").Click
Debug.Print .FindElementByXPath("//div[@role='period']").Attribute("innerHTML")
.FindElementByXPath("//div[@role='period']").Click

有什么想法吗...?

【问题讨论】:

  • ^^ 你有一个引导日期选择器,如上面评论中的链接 1。后两个链接显示了如何“作弊”以编程方式与之交互并注入您的日期。 jquery 部分的格式取决于日期选择器的格式。
  • 我对引导程序没有什么好主意。如何获取日期选择器的链接?
  • 我在上面放了一个链接,你可以用来演示(只需向下滚动页面 - 有一个仅限日期的部分)

标签: excel vba selenium


【解决方案1】:

我可以找到一些 java 脚本来引导我找到解决方案

Dim dt As Object
Set dt = .FindElementByCss("input#date")
.ExecuteScript "window.scrollBy(0, 400)"
.ExecuteScript "arguments[0].removeAttribute('readonly')", dt
dt.Clear
dt.SendKeys wsUpload.Range("B5").Value
.SendKeys .Keys.Tab

还有一个更简单的解决方案

.ExecuteScript "document.getElementById('date').value = '" & wsUpload.Range("B5").Value & "'"

【讨论】:

  • ^^ 或 :-) 有效。但是,在从单元格中读取日期时,我总是对 Excel 持怀疑态度。
  • 非常感谢,我的导师。
猜你喜欢
  • 2019-07-28
  • 2017-04-09
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多