WebBrowser: тыкнуть на ссылку с известным текстом

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: WebBrowser: тыкнуть на ссылку с известным текстом

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Naeel Maqsudov » 18 фев 2009, 14:38

Причина скролить, насколько я понял автора есть. Наверное надо чтобы открылась страница, да еще на нужном месте сразу.
Был бы там якорь, то можно было бы его прямо в URLе добавитьчерез решеточку... А так не знаю.... Надо как-то на этот DIV фокус перевести.
А c WM_* точно можно прогадать. Юзер возьмет и по умолчанию размер шрифта другой, или настроит подмену стилей, или просто у него размер системного шрифта будет другой в винде, и все... привет...

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Duncon » 18 фев 2009, 14:31

Лучше DOM почитай добраться можно к любому элементу, тем более IE вообще изврат можно полюбому развлекаться document.all. итд
В конце концов можно перебрать все элементы и сверится с id, не вижу причин скролить..

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Хыиуду » 18 фев 2009, 14:18

А если есть div с известным id, в котором выводится список игроков - как его программно проскроллить?
Либо другой вопрос: если скроллить тупо с помощью посылания WM_KEYDOWN - всегда ли TWebBrowser скроллит на одну и ту же высоту?

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Duncon » 16 фев 2009, 18:19

Это один из вариантов есле по структуре достать сложно.. document.Layers итп

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Хыиуду » 16 фев 2009, 17:50

В итоге дело решается так: из документа вытаскивается innertext, высчитывается, на какой строке находится нужное имя, вычисляются координаты строки и делается тык мышкой в том направлении :)

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Naeel Maqsudov » 15 фев 2009, 11:32

Это не важно. Просто вместо document.forms будет что-то другое. Все зависит от структуры документа. Содержимое любого тега доступно.

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Хыиуду » 15 фев 2009, 01:08

Там формы нет, просто ссылки. Но попробую завтра :)

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Duncon » 14 фев 2009, 21:53

Лет 5 назад вот такую штуку нацарапал, всё по DOM должно работать..
[syntax=Delphi]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i, j: byte;
FormItem: Variant;
begin
if WB.OleObject.Document.forms.Length = 0 then Exit;
for i := 0 to WB.OleObject.Document.forms.Length - 1 do
begin
FormItem := WB.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
if FormItem.Item(j).name = 'login' then FormItem.Item(j).Value := '';
if (FormItem.item(j).type = 'submit') then WB.OleObject.Document.forms.item(i).item(j).click;
end;
end;
end;
[/syntax]

Re: WebBrowser: тыкнуть на ссылку с известным текстом

Naeel Maqsudov » 14 фев 2009, 21:24

В принципе да. У TWebBrowser есть свойство которое ссылается на документ. Его значение - это объект, подчиняющийся DOM.
Получив ссылку на него можно делать все то же самое, что делают с документом и java-скрипты.

WebBrowser: тыкнуть на ссылку с известным текстом

Хыиуду » 14 фев 2009, 21:17

Картина следующая: в TWebBrowser загружена страница онлайн-игрушки (http://www.klanz.ru/rooms/1). На странице - список игроков. Страница генерируется автоматически, т.е. элементы списка в коде страницы отсуствуют, а есть код некоего скрипта, выводящего этот список. Имя каждого игрока является ссылкой, причем все ссылки указывают на один адрес (http://www.klanz.ru/rooms/1#). Известно имя игрока, которое гарантированно есть на этой странице. Возможно ли как-то программно тыкнуть на это имя?

Вернуться к началу