Другой способ, которым вы можете воспользоваться, - установить текст с помощью JavaScriptExecutor.Дайте некоторую задержку перед выполнением действия.
Попробуйте следующий пример кода:
Thread.sleep(3000);
((JavascriptExecutor) driver).executeScript("document.getElementById('value').value='XYZ989898-99';");
Поскольку идентификатор уникален, вы можете использовать функцию JavaScript getElementById()
для установки значения.
Если вы хотите установить текст с помощью метода sendKeys()
, а до этого, если вы хотите очистить текст, то простой clear()
может не работать, вместо этого вы можете сначала попытаться удалить значения XYZ
и попробоватьчтобы снова отправить значения, как показано ниже:
// Wait for some time
Thread.sleep(3000);
// Locate the element first and store it in some variable
WebElement element = driver.findElement(By.id("value"));
// Fetch the existing text from the field first
String existingValue = element.getAttribute("value");
// Wait for some time
Thread.sleep(3000);
// Click on that element first so the focus will shift to there
element.click();
// Wait for some time
Thread.sleep(2000);
// Loop until the existing value length
for(int i=0;i<existingValue.length();i++) {
// Remove the existing character text one by one
element.sendKeys(Keys.BACK_SPACE);
}
// Try to send the text at the end, make sure that you should append XYZ as a prefix
element.sendKeys("XYZ989898-99");
Надеюсь, это поможет ...