Chrome 上的 SendKey 对数字不起作用(Java)

Chrome 上的 SendKey 对数字不起作用(Java)

我使用的是 Windows 10 64 位系统,Chrome 版本为 75.0.3770.142,最新的 Chrome 驱动程序为 75。我在 Java 上使用 Selenium 时遇到了 sendKey 问题。我最近更换了电脑,在 salesforce 应用程序中,SendKey 方法对某些字段(类型:十进制)的数值进行了回归。

lstOfElements.get(0).sendKeys("120000");

对于这些字段,SendKey 不发送任何内容。我使用 Javascript 的解决方法:

WebElement t1 =  driver.findElements(By.xpath("//*[contains(@id,'input')]")).get(0);
t1.click();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].value='120000';", t1);

我可以发送该值,但它不能被识别为正确的值(确保手动输入的值有效)

所以我使用了另一种解决方法

t1.sendKeys(Keys.NUMPAD1);

并且它有效。但我的目标是通过外部文件管理我的数据集,并且我想避免数字和 NumPad 命令之间的转换。

因此,我使用 Gecko WebDriver 在 FireFox 上测试了相同的初始命令 (SendKey("120000");),并且运行良好。其他一些使用其他配置(Windows 10 64 位上的 Chrome 32 位和相同的驱动程序)的开发人员在 Chrome 上也能很好地运行 SendKey。我也更改了我的配置以使其一致,但问题仍然存在。

有人知道为什么会出现这个 sendkey 问题吗,请解释一下?可能是 Chrome 上存在兼容性问题,因为当我测试机器人 keyPress(KeyEvent.VK_1) 时,它不起作用,因为 keyPress(KeyEvent.VK_NUMPAD1); 可以工作。

谢谢你的帮助。希望我说清楚了。

相关内容