这是我想要发送数据的编码示例,它可以工作。这是一个下拉元素。
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
如果没有看到目标元素的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()
替换它们。