2011-10-26 2 views
4

Я могу ввести текст в поле с помощью WebElement.sendKeys(), но редактирование не работает: я не могу ни переместить курсор, ни удалить последний символ, который я набранный с e.sendKeys(Keys.BACK_SPACE)Как редактировать текстовое поле в Selenium 2?

Как изменить значение текстового поля в Selenium 2 (WebDriver)?

ответ

6

Вы можете определенно сделать это с помощью одного из двух методов. Я пробовал и работает.

e.click() # Positions the cursor at the end of the string 
e.sendKeys(Keys.BACK_SPACE) 

Или вы могли бы просто очистить текст, и начать снова:

e.clear() 
e.sendKeys("What you want to send") 
0

Вы можете попробовать щелкнуть сначала в этом текстовом поле и использовать sendKeys() после этого.

+0

не имеет никакого эффекта, либо , Это имеет смысл, так как я отправляю ключи непосредственно в 'WebElement' (а не на страницу/браузер/родительский элемент). –

2

Я нашел это решение, которое, кажется, работает очень хорошо. Он в основном нажимает на текстовое поле WebElement, а затем отправляет Ctrl-End, чтобы поместить курсор в конец текста. Затем отправляет строку, которую я ранее инициализировал.

(quickReplyTextArea является WebElement текстового поля, которое у меня есть предыдущий нашли, как postQuickReplyButton (кнопка вместо текстового поля, очевидно). ReplyText является строкой, что я инициализирован ранее)

quickReplyTextArea.click(); 
    quickReplyTextArea.sendKeys(Keys.chord(Keys.CONTROL, Keys.END)); 
    quickReplyTextArea.sendKeys(replyText); 
    postQuickReplyButton.click(); 
Смежные вопросы