Я работаю в Windows 10 64bit с Chrome версии 75.0.3770.142 и последним Chrome Driver 75. У меня проблема sendKey при использовании Selenium на Java. Недавно я сменил компьютер, и у меня возникла регрессия в методе SendKey для числового значения некоторых полей (тип: decimal) в приложении salesforce.
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.
Итак, я протестировал ту же начальную команду (SendKey("120000");) на FireFox с использованием Gecko WebDriver, и она работает хорошо. У другого разработчика с другой конфигурацией (Chrome 32bit на Windows 10 64bit и тот же драйвер) SendKey также работает хорошо на Chrome. Я также изменил свою конфигурацию, чтобы выровнять ее, но та же проблема.
Кто-нибудь знает, почему возникла эта проблема с sendkey, пожалуйста, объясните мне? Возможно, проблема совместимости с Chrome, потому что, когда я тестировал робота keyPress(KeyEvent.VK_1), он не работал, так как keyPress(KeyEvent.VK_NUMPAD1); работал.
Спасибо за помощь. Надеюсь, я ясно выразился.