这是我要向其发送数据的编码示例,并且可以正常工作。这是一个下拉元素。
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
答案 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())
还请注意,UCase
和Format
是VB6时代的旧功能,仅存在于向后兼容该语言的情况。我用.NET变体DateTime.ToString()
(假设roaData(2)
实际上是Date
类型)和String.ToUpper()
替换了它们。