Как очистить textarea

soprano

Client
Регистрация
25.08.2011
Сообщения
866
Благодарностей
948
Баллы
93
Есть поле для ввода с текстом
C#:
<textarea style="width:220; overflow:hidden;" class="dontcleardefault xh-highlight" name="message" rows="5" cols="20"">Bla-bla-bla-bla</textarea>
Перед тем, как ввести свой текст, нужно выделить и удалить начальный текст.
Вот такой код выделяет все поля ввода на странице, а не только textarea и ничего не удаляет
C#:
            instance.ActiveTab.FindElementByXPath("//textarea[@name='message']", 0);
            instance.ActiveTab.KeyEvent("a","press","ctrl");
            instance.ActiveTab.KeyEvent("Delete","press","");
Подскажите, кто знает, сниппет для этого.
 
Последнее редактирование:

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 740
Благодарностей
1 132
Баллы
113
А если так?
C#:
instance.ActiveTab.FindElementByXPath("//textarea[@name='message']", 0);
instance.ActiveTab.KeyEvent("a","press","ctrl");
instance.SendText("{BACKSPACE}", 15);
 

soprano

Client
Регистрация
25.08.2011
Сообщения
866
Благодарностей
948
Баллы
93
А если так?
C#:
instance.ActiveTab.FindElementByXPath("//textarea[@name='message']", 0);
instance.ActiveTab.KeyEvent("a","press","ctrl");
instance.SendText("{BACKSPACE}", 15);
Этот код не отработал - только выделил, но не удалил.
Вот этот отработал
C#:
            instance.ActiveTab.FindElementByXPath("//textarea[@name='message']", 0).InnerHtml.Remove(0, 0);
            instance.ActiveTab.KeyEvent("a","press","ctrl");
            instance.ActiveTab.KeyEvent("Delete","press","");
Причем, сначала надо с textarea все сделать - удалить, ввести, а затем уже с остальными полями работать, а то все стирает введенное.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 177
Баллы
113
Перед тем, как ввести свой текст, нужно выделить и удалить начальный текст.
Просто пишите в textarea в атрибут value нужный текст, предыдущий текст удалится.
Либо пустое значение записать, если именно очистить нужно.

60315


60316


C#:
// Конструктор действий, тип Set
HtmlElement he = instance.ActiveTab.FindElementByName("message");

// Установить элементу значение
he.SetValue("пишем нужный текст, предыдущее значение удалится", instance.EmulationLevel, false);
 
  • Спасибо
Реакции: Nike59, soprano и doc

soprano

Client
Регистрация
25.08.2011
Сообщения
866
Благодарностей
948
Баллы
93
Лучший вариант.
 
  • Спасибо
Реакции: Sergodjan

p-sergei

Client
Регистрация
20.12.2016
Сообщения
544
Благодарностей
264
Баллы
63
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 564
Благодарностей
9 177
Баллы
113
@sergodjan66 подскажи пожалуйста, на что 3-ий и 4-ый параметр метода влияет, никак не могу понять, когда надо false или true!
Вот тут описание https://help.zennolab.com/en/v7/zennoposter/7.1.4/topic161.html

Как я понимаю, true в 3-ем параметре нужно использовать в случаях, когда поле является select (менюшкой).
В остальных случаях можно использовать false.

4-ый параметр - true когда надо дописать значение (не очищать старое значение), а false - чтобы перезаписать.
 
Последнее редактирование:
  • Спасибо
Реакции: p-sergei и soprano

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)