我使用的是 Windows 10 64 位,Chrome 版本為 75.0.3770.142 和最新的 Chrome 驅動程式 75。我最近更換了計算機,並且對 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);
我可以發送該值,但它不被識別為正確的值(確保手動輸入的值 workq)
所以我使用了另一種解決方法
t1.sendKeys(Keys.NUMPAD1);
它有效。但我的目標是透過外部文件管理我的資料集,我想避免數位和 NumPad 命令之間的轉換。
因此,我使用 Gecko WebDriver 在 FireFox 上測試了相同的初始命令 (SendKey("120000");),並且運作良好。其他一些具有其他配置的開發人員(Windows 10 64 位元上的 Chrome 32 位元和相同的驅動程式)也使 SendKey 在 Chrome 上運作良好。我還更改了我的配置以使其對齊,但相同的問題。
有人知道這個 sendkey 問題是怎麼來的,請解釋一下嗎? chrome 上可能有相容性問題,因為,當我測試機器人 keyPress(KeyEvent.VK_1) 時,它無法運作,因為 keyPress(KeyEvent.VK_NUMPAD1);作品。
感謝您的協助。希望我說清楚了。