Как заполнить все инпуты из выборки одним значением

  • Автор темы Автор темы toxass
  • Дата начала Дата начала

toxass

Client
Регистрация
18.03.2010
Сообщения
280
Реакции
12
Баллы
18
Пример инпутов:
HTML:
Развернуть Свернуть Копировать
<input name="items[207031][username]" id="username-207031" class="input-medium" value="ТУТ ТО ЧТО НУЖНО ЗАПОЛНИТЬ" type="text">
<input name="items[107031][username]" id="username-107031" class="input-medium" value="ТУТ ТО ЧТО НУЖНО ЗАПОЛНИТЬ" type="text">
<input name="items[507031][username]" id="username-507031" class="input-medium" value="ТУТ ТО ЧТО НУЖНО ЗАПОЛНИТЬ" type="text">

Вижу решение с циклами, но может без них как-то?
 
C#:
Развернуть Свернуть Копировать
string value = project.Variables["Value"].Value;

Tab tab = instance.ActiveTab;
if (tab.IsBusy) tab.WaitDownloading();

HtmlElementCollection heCol = tab.FindElementsByAttribute("input:text", "id", "username-\d+", "regexp");

foreach (HtmlElement he in heCol.Elements)
    he.SetValue(value, "Full");
 
  • Оценить
Реакции: sydoow
Код:
Развернуть Свернуть Копировать
var elements = instance.ActiveTab.FindElementsByXPath("//input[starts-with(@id, 'username-')]");

foreach (var elem in elements)
{
    elem.SetValue("ТУТ ТО ЧТО НУЖНО ЗАПОЛНИТЬ", "Full");
    instance.WaitFieldEmulationDelay();
}
 
  • Оценить
Реакции: sydoow
Dimionix , для чего вы использовали "heCol.Elements", а не просто "heCol" в условиях foreach ?

freeman , для чего вы добавили "instance.WaitFieldEmulationDelay();" ?
 
  • Оценить
Реакции: sydoow
freeman , для чего вы добавили "instance.WaitFieldEmulationDelay();" ?
Для ожидания завершения заполнения поля при посимвольном вводе. Иначе инпут не успевает заполниться до конца при задержке больше 150-200 мс.
 
  • Оценить
Реакции: sydoow

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