Keys.DELETE класса Action в селене не удаляется - PullRequest
0 голосов
/ 12 марта 2020

Я отправляю элемент из DOM:

action = new Actions(webDriver);
action.moveToElement(el);
action.click(element).sendKeys(Keys.chord(Keys.CONTROL, "a", Keys.DELETE));

и после этой команды отправляю этот 'fillText', который представляет собой сам текст в виде строки, скажем "логин":

action.sendKeys(filledText).build().perform();

Но по какой-то причине поле заполняется "а" перед заполненным текстом. Я получаю "алогин".

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Используйте control + a на первом шаге, чтобы выделить весь текст, а затем delete на втором шаге, чтобы удалить текст.

Actions action = new Actions(webDriver);
action.moveToElement(el);
action.click(element).sendKeys(Keys.chord(Keys.CONTROL, "a"));

А затем

element.sendKeys(Keys.DELETE);

Вы также можете использовать backspace , чтобы очистить текст, используя l oop

WebElement textboxName = driver.findElement(By.locator);
int textLength = textboxName.getText().length();

while(textLength!=0)
{
    textboxName.click();
    textboxName.sendKeys(Keys.BACK_SPACE);
    textLength = textboxName.getText().length();
}

Я лично испытал это из-за некоторых сложная структура DOM иногда метод Selenium clear() не работает. Вы можете попробовать ниже альтернативы:

WebElement element = driver.findElement(loc);
Actions action = new Actions(driver);
action.click(element).sendKeys(Keys.END).keyDown(Keys.SHIFT).sendKeys(Keys.HOME).keyUp(Keys.SHIFT).sendKeys(Keys.BACK_SPACE).perform();
0 голосов
/ 12 марта 2020

Попробуйте отправить ключи за два шага без ActionsChains.

element.sendKeys(Keys.CONTROL + "a");
element.sendKeys(Keys.DELETE);

ИЛИ использовать Backspace с для l oop:

for(int i=0; i<string_length ;i++)
{
    element.sendKeys(Keys.BACKSPACE);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...