Програмное заполнение полей используя Webbrowser

  • Автор темы Автор темы zazaza
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Z

zazaza

Поставить на форму WEBBROWSER
Програмно зайти через форму на сайте через WEBBROWSER
Запонить програмно одно поле

Одно я знаю как поле заполнить у которого ХТМЛ код выглядит так:


Код:
<td width="150" style="padding:2px;">Название:</td>
<td style="padding:2px;"><input type="text" name="name" size="25" class="edit bk"><a href="#" class="hintanchor" onMouseover="showhint('Название статической страницы. Допустимо использование только латинских символов без пробелов', this, event, '250px')">[?]</a></td>

Вот тако его можно заполнить :

Код:
WebBrowser1.Document.GetElementById("name").InnerText = "Тестируем"


А если у другого поля которое мне надо ХТМЛ код такой то как его заполнить?
Код:
<td style="padding:2px;">Текст:</td>
<td style="padding-left:2px;"><script type=text/javascript>
 
А таких <script> элементов много на форме или в таблице?
Можно получить все script, но не факт, что легко сможете выделить нужный и позволительно задать или поменять ему значение.

Код:
For Each script As HtmlElement In WebBrowser1.Document.GetElementsByTagName("script")
If script.InnerHtml.Contains("это тот скрипт, который надо поменять") Then ' шутка
script.SetAttribute("text", scriptTextReplace) ' пробуем изменять
End If
Next

Добавлено: id там никакого рядом нет (у td, tr), чтоб однозначно определить нужный элемент?
Ибо проверять type=text/javascript мб недостаточно, всё зависит от содержимого.
 
А таких <script> элементов много на форме или в таблице?
Можно получить все script, но не факт, что легко сможете выделить нужный и позволительно задать или поменять ему значение.

Код:
For Each script As HtmlElement In WebBrowser1.Document.GetElementsByTagName("script")
If script.InnerHtml.Contains("это тот скрипт, который надо поменять") Then ' шутка
script.SetAttribute("text", scriptTextReplace) ' пробуем изменять
End If
Next

Добавлено: id там никакого рядом нет (у td, tr), чтоб однозначно определить нужный элемент?
Ибо проверять type=text/javascript мб недостаточно, всё зависит от содержимого.


Что то я запутался. и что такое SCRIPTTEXTREPLACE ? переменная ? или что то другое ? в Visual Basic. NEt у меня не поддерживается такое (

Может я не правильно тебя понял или ты меня? Ладно фиг с ним попробую на всякий случай объяснить ещё раз более подробно
Вот картинка с полями которые мне нужно заполнить:



Поле №1 я знаю как можно заполнить.
Поле №2 я тоже знаю как можно заполнить.
А вот поле №3 я понятия не имею как заполнить. Как вообще к нему програмно обратиться что бы при щелчке например по BUTTON1 в поле вписался текст например такого типа "Тест успешно завершён"

Когда я открываю исходный код страницы то там вот такие дебри не то что в первом и во втором варианте:

Код:
<script type="text/javascript">
Calendar.setup({
inputField	 :	"f_date_c",	 // id of the input field
ifFormat	  :	"%Y-%m-%d %H:%M",	 // format of the input field
button		 :	"f_trigger_c", // trigger for the calendar (button ID)
align		 :	"Br",		  // alignment 
timeFormat	 :	"24",
showsTime	 :	true,
singleClick	:	true
});
</script></td>
</tr>
<tr>

<td style="padding:2px;">Текст:</td>
<td style="padding-left:2px;"><script type=text/javascript>
<!--

var uagent	= navigator.userAgent.toLowerCase();
var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var is_ie	 = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
var is_ie4	= ( (is_ie) && (uagent.indexOf("msie 4.") != -1) );
var is_moz	= (navigator.product == 'Gecko');
var is_ns	 = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) );
var is_ns4	= ( (is_ns) && (parseInt(navigator.appVersion) == 4) );
var is_opera = (uagent.indexOf('opera') != -1);
var is_kon	= (uagent.indexOf('konqueror') != -1);
var is_webtv = (uagent.indexOf('webtv') != -1);

var is_win	= ( (uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") !=- 1) );
var is_mac	= ( (uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var ua_vers  = parseInt(navigator.appVersion);

var text_enter_url	  = "Введите полный URL ссылки";
var text_enter_size	  = "Введите размеры флэш ролика (ширина, высота)";
var text_enter_flash	  = "Введите ссылку на флэш ролик";
var text_enter_page	 = "Введите номер страницы";
var text_enter_url_name = "Введите название сайта";
var text_enter_page_name = "Введите описание ссылки";
var text_enter_image	= "Введите полный URL изображения";
var text_enter_email	= "Введите e-mail адрес";
var text_enter_list	 = "Введите пункт списка. Для завершения ввода оставьте поле пустым.";
var text_code		  = "Использование: [CODE] Здесь Ваш код..
";
var text_quote = "Использование:
Здесь Ваша Цитата..
";
var error_no_url = "Вы должны ввести URL";
var error_no_title = "Вы должны ввести название";
var error_no_email = "Вы должны ввести e-mail адрес";
var prompt_start = "Введите текст для форматирования";
var img_title = "Введите по какому краю выравнивать картинку (left, center, right)";
var email_title = "Введите описание ссылки";
var dle_prompt = "Ввод информации";
var bb_t_emo = "Вставка смайликов";
var bb_t_col = "Цвет:";

var b_open = 0;
var i_open = 0;
var u_open = 0;
var s_open = 0;
var quote_open = 0;
var code_open = 0;
var sql_open = 0;
var html_open = 0;
var left_open = 0;
var center_open = 0;
var right_open = 0;
var hide_open = 0;
var color_open = 0;
var spoiler_open = 0;
var ie_range_cache = '';
var list_open_ = '';
var list_close_= '';
var listitems = '';
 
Что то я запутался. и что такое SCRIPTTEXTREPLACE ? переменная ? или что то другое ? в Visual Basic. NEt у меня не поддерживается такое
да, переменная. Там изначально непонятно было, что заполнять. Я подумала, что просто вписать какой-то js-код в элемент script, там может быть текст - кусок кода. Для заполнения его и используется SetAttribute("text", СтрокиКода))
Судя по картинке, там на страничке есть либо textarea (там может быть использовано value для задания значения, элемент textarea можно попробовать получить по тегу -аналогично тому, как писала для "script" - или через id, тогда посмотреть наличие id/name), либо какой-то другой элемент встроен для редактирования форматированного текста.
Но ничего подобного в приведенном куске пока тут не вижу, поэтому я не подскажу.
 
да, переменная. Там изначально непонятно было, что заполнять. Я подумала, что просто вписать какой-то js-код в элемент script, там может быть текст - кусок кода. Для заполнения его и используется SetAttribute("text", СтрокиКода))
Судя по картинке, там на страничке есть либо textarea (там может быть использовано value для задания значения, элемент textarea можно попробовать получить по тегу -аналогично тому, как писала для "script" - или через id, тогда посмотреть наличие id/name), либо какой-то другой элемент встроен для редактирования форматированного текста.
Но ничего подобного в приведенном куске пока тут не вижу, поэтому я не подскажу.
сейчас я добавлю обсалютно полной исходный код этой страницы с формой. Может там чтоо увидете бегло.
Я просто уже 2рой день бьюсь как рыба об лёд молюсь что бы кто нибудь вконце концов помог добисать одну строку. НАверняка там не больше получится.

Программа закончена фактически на 95% а оставшиеся 5 % это как раз заполнить это проблемное поле (


Извиняюсь. Никак не могу добавить полный код через теги CODE/ CODE Данный форум ругается с такой вот ошибкой.
-----------------
Ошибка использования BB кодов форума. Возможно вы неправильно использовали какой-то из тегов, как, например, тег [TAG], тогда как он должен использоваться в виде [TAG=] или наоборот.
--------

ВИдимо в тексте он находит элементы которые как ему кажется должны быть записаны по другому..
Поэтому я весь код записать в текстовой документ который можно открыть любым блокнотом хотябы тем что идёт в комплекте с операционной системой
Поправка: попробовать прикрепить текстовой фаил форум ругается с ошибкой:
Неудачная загрузка. Необходимо проверить настройки и права доступа. Пожалуйста, сообщите об этом администрации.
Поэтому просто уже заливаю куда нибудь на DEPOSTFILES хотябы


Ссылка на скачивание: http://depositfiles.com/files/uw10xg92h
Размер файла: 39кб
Формат файла: *.txt

Пожалста помогите (
 
можно было файл приаттачить сюда через расширенную форму ответа)
 
посмотри на странице
WebBrowser1.Document.GetElementById("template")
если получишь правильно, то попробуй ему сделать
.SetAttribute("value", "нужный текст")
или .SetAttribute("Value", "нужный текст")
т.е. нечто типа
WebBrowser1.Document.GetElementById("template").SetAttribute("value", "нужный текст")

PS:
или вот еще вариант поиска по тегу с проверкой имени:
Код:
		theElementCollection = WebBrowser1.Document.GetElementsByTagName("textarea")
For Each curElement As HtmlElement In theElementCollection
Dim controlName As String = curElement.GetAttribute("name").ToString
If controlName = "template" Then
curElement.SetAttribute("Value", "нужный текст")
End If
Next
 
Всё спасибо/ спасиьбо огромное:

Код:
WebBrowser1.Document.GetElementById("template").SetAttribute("value", "нужный текст")

Сработало.


Добавлено: Всё спасибо/ спасиьбо огромное:

Код:
WebBrowser1.Document.GetElementById("template").SetAttribute("value", "нужный текст")

Сработало.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab