私は 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 ビット、同じドライバー) を使用している他の開発者も、SendKey を Chrome でうまく動作させています。私も conf を変更して調整しましたが、同じ問題が発生しました。
この sendkey 問題の原因を知っている人はいますか? 説明してください。Chrome に互換性の問題がある可能性があります。ロボット keyPress(KeyEvent.VK_1) をテストしたところ、keyPress(KeyEvent.VK_NUMPAD1); は機能するので、ロボットは機能しません。
ご協力ありがとうございます。私の説明が明確であったことを願っています。