1

我在一个网站上有三个字段,我用 joda time 填充。在 Firefox 中一切正常。然而,在 IE 中,IRB 到期日期字段被填充,开始日期和结束日期字段没有被填充。有什么想法吗?这是IE9。我已经更新到最新版本的 joda time,但仍然没有得到任何乐趣。我已将 WebDriver 和 IEDriver 更新到 2.37。当我将它发送到控制台时,时间正在正确输出。

//Enter an IRB Expiration Date - This is the one which works
WebElement irbExpCP = driver.findElement(By.id("irbExpDate"));
irbExpCP.click();
LocalDate irbDate = LocalDate.now().plusYears(5);
DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy");
String irbDate2 = formatter.print(irbDate);
irbExpCP.sendKeys(irbDate2);

//Enter a Start Date
WebElement startDateCP = driver.findElement(By.id("startDate"));
startDateCP.click();
LocalDate startDate = LocalDate.now();
String startDate2 = formatter.print(startDate);
startDateCP.sendKeys(startDate2);

//Enter an End Date
WebElement endDateCP = driver.findElement(By.id("endDate"));
endDateCP.click();
LocalDate endDate = LocalDate.now().plusYears(10);
String endDate2 = formatter.print(endDate);
endDateCP.sendKeys(endDate2);
4

2 回答 2

3

解决方案:尝试Actions Class使用sendKeys()方法:

Actions action = new Actions(driver);
action.sendKeys(yourElement, textToEnter).build().perform();

注意:在 IE 中大多是sendsKeys()随机打印半个字符或单个字符。通过上面的解决方案我们可以解决这个问题。

于 2013-10-25T06:58:27.803 回答
0

我能想到的有两种情况:

1.) 确保您能够选择并专注于元素。有时您可能需要先将注意力集中在元素上,然后再在其中输入内容。所以尝试使用这种方法来关注元素(只是一个例子)

    driver.findElement(By.id("myid")).click();
    driver.findElement(By.id("myid")).sendKeys("text");

如果是这种情况,这应该可以正常工作。

2.) 其他情况可能是由于 IEDriver 架构造成的。我曾经core i5并且正在尝试IEDriverfor 64 bit,这导致了几个问题,(例如 sendkeys 在绑定下一个字母之前的 3-4 秒左右工作非常缓慢)。IEDriver因此,如果是这种情况,请尝试更改。

于 2013-10-25T04:31:36.747 回答