如何使用Selenium将数据发送到日期文本框?

时间:2019-04-22 06:31:15

标签: arrays vb.net selenium element

这是我要向其发送数据的编码示例,并且可以正常工作。这是一个下拉元素。

driver.FindElement(By.XPath("//ul[@id='select2-ctl00_ContentPlaceHolder1_FormEngine1_mf_18a384bd-8919-4aa7-b953-528b33a775dd_ddlGroup-results']/li[. ='" & roaData(3) & "']")).Click()

这是我面临的真正问题。下面是我想将数据发送到元素但无法正常工作的代码。我想发送日期数据,但不捕获数据。该元素是日历文本框。

driver.FindElement(By.XPath("//input[@id='ctl00_ContentPlaceHolder1_FormEngine1_ctl61_txtDate']")).SendKeys(UCase(Format(roaData(2), "dd MMMM yyyy")))

有解决方案的人吗?谢谢:D

1 个答案:

答案 0 :(得分:0)

既看不到目标元素的HTML也不包含roaData(2)的内容,很难说出问题所在,但是像大多数输入元素一样,文本框的内容通常位于value中属性。因此,我建议您使用SendKeys()而不是setAttribute()

driver.FindElement(By.XPath("//input[@id='ctl00_ContentPlaceHolder1_FormEngine1_ctl61_txtDate']")).setAttribute("value", roaData(2).ToString("dd MMMM yyyy").ToUpper())

还请注意,UCaseFormat是VB6时代的旧功能,仅存在于向后兼容该语言的情况。我用.NET变体DateTime.ToString()(假设roaData(2)实际上是Date类型)和String.ToUpper()替换了它们。