Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПростой вопрос по TwebBrowser(я так думаю,что простой:) Найти похожие ветки
← →
AV © (2012-09-19 23:53) [0]В целях автоматизации некоторых своих операций в инете, накидал на форму
wb1: TWebBrowser; и пару кнопок
Суть - нажать все ChekBox на странице и нажать кнопку удалить(типа submit)
собсвенно, все работает, но иногда выскакивает
"На этой странице произошла ошибка сценария js..."
и кнопки продолжить или нет
Как или не допустить этого окна,
или кликнуть на любую кнопку
т.е. все равно как, но удалить все мессаги. Потому что пока окно висит, ничего не подгружается
код ниже, если важно,
хотя, думаю тут что-то иное надо сделать. Можно настройки какие в системе подкрутить, любым способом в общем.
procedure TForm1.btn1Click(Sender: TObject);
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := WB1.OleObject.Document.Forms.Item( 0 ).Elements;
for i := 0 to ( ovElements.Length-1 ) do
if ( AnsiUpperCase( ovElements.Item( i ).tagName ) = "INPUT" ) then
if ( AnsiUpperCase( ovElements.Item( i ).type ) = "CHECKBOX" ) then
//if ( ovElements.item( i ).Value = "Some text" ) then
ovElements.Item( i ).Click;
end;
procedure TForm1.btn2Click(Sender: TObject);
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := WB1.OleObject.Document.Forms.Item( 0 ).Elements;
for i := 0 to ( ovElements.Length-1 ) do
if ( AnsiUpperCase( ovElements.Item( i ).type ) = "SUBMIT" ) then
if ( AnsiUpperCase( ovElements.Item( i ).id ) = "DEL" ) then
//if ( ovElements.item( i ).Value = "Some text" ) then
ovElements.Item( i ).Click;
end;
procedure TForm1.btn4Click(Sender: TObject);
begin
tmr1.Enabled := not(tmr1.Enabled);
end;
procedure TForm1.tmr1Timer(Sender: TObject);
begin
btn1.Click;
btn2.Click;
end;
← →
знайка (2012-09-20 11:43) [1]
> Как или не допустить этого окна
Искллючение обработать..
← →
AV © (2012-09-20 11:55) [2]Эврика никакого исключения не видит
т.е. как такового исключения нет
у wb1: TWebBrowser onInternalException или что-то похожего - не вижу.
Знаете - подскажите
← →
Лакки (2012-09-20 11:56) [3]
WebBrowser.Silent := true;
← →
знайка (2012-09-20 12:00) [4]
> Знаете - подскажите
try catch...
← →
брат Птибурдукова (2012-09-20 12:07) [5]ну вот нафига это в потрепаловку кидать, а не в основную?
← →
Динозавр Дороти (2012-09-20 12:25) [6]Удалено модератором
← →
AV © (2012-09-20 12:31) [7]
> Лакки (20.09.12 11:56) [3]
> WebBrowser.Silent := true;
Похоже, да.
Спасибо!
> ну вот нафига это в потрепаловку кидать, а не в основную?
Да это так, не вопрос жизни и смерти, просто хотелось бы лишних кликов не делать. За 1 час приходит ~ 200 уведомлений, нужных - штук 5. Все в теме письма написано. А сайт, кретинский, не более 10 на странице показывает за раз.
Ну, круто зато теперь, нажал кнопку, просматриваешь топ 10 пока не удалилось, удалилось - следующий топ 10 показывает.
Удобно. Не надо окошко это всплывающее закрывать время от времени.
← →
знайка (2012-09-20 13:01) [8]Вам бы программиста нанять.. :)
← →
AV © (2012-09-20 14:23) [9]зачем?
← →
stas © (2012-09-20 16:58) [10]знайка (20.09.12 13:01) [8]
>try catch...
такого в Delphi нет
а в случае описанном в теме и try...except не поможет
>Вам бы программиста нанять.. :)
Так что программист и Вам не помешал бы :)
← →
знайка (2012-09-20 23:05) [11]Вы ваще топик читали, програмист...
← →
AV © (2012-09-21 08:55) [12]
> знайка (20.09.12 23:05) [11]
> Вы ваще топик читали, програмист...
мало читать, неплохо и понять :)
← →
stas © (2012-09-21 09:16) [13]>знайка (20.09.12 23:05) [11]
Конечно, не только читал, а и сталкивался с данной проблемой и решилась она так как написано в
>Лакки (20.09.12 11:56) [3]
← →
AV © (2012-09-21 09:30) [14]Ув. г.Знайка, я читаю все посты. Если я игнорировал неоднократное замечание про try-except(catch), наверное, не просто так же.
я же написал
> Эврика никакого исключения не видит
У меня 6.1 версия. Она видит все исключения, и она видит порой там, где его и нет :). Было пару раз. т.е. с ней (eureka) - исключение. Отключишь ее - нет никакого исключения. Я gunsmokerу писал об этом. Не помню что он мне ответил, правда. :) Не суть. Try-except - для другого.
Если я напишу компонент, который будет периодически выдавать showmessage об ошибках своей логики, такие ошибки ты не загасишь try-except
Но если я напишу св-во IgnorLogicError, ты можешь написать IgnorLogicError := true; и showmessage об ошибках логики компонент не будет выдавать.
Вот тут тоже самое, примерно.
← →
Лакки (2012-09-21 10:06) [15]
знайка (20.09.12 12:00) [4]
try catch...
TWebBrowser - это многопоточный COM-контрол. Черный ящик. Живет в своем апартменте и знать ничего не знает про то, кто и как его использует. Функционирует в своих, одному ему ведомых потоках, никак не связанных с потоком программы, которая его использует (ну хорошо, они иногда связываются, когда у барузера происходят определенные события; забегая вперед и возвращаясь к ранее сказанному, напомню, что у него нет событий перехвата исключений). Вообще, на практике большинство дополнительной работы с этим контролом построено на передаче команд через COM-интерфейс и потом, если нужно по месту, кручение в цикле в ожидании, пока контрол обработает эту команду и перейдет в нужное состояние. Ошибки возникают и обрабатываются внутри контрола. И естественно, нет никакой возможности перехватить в коде Delphi ошибки, которые возникают внутри этого контрола. Единственный способ решения вопроса, поднятого в данной ветке - "попросить" WebBrowser не выдавать сообщений (Silent := true). К сожалению, далеко не факт, что он будет выполнять эту просьбу во всех возможных ситуациях.
← →
знайка (2012-09-21 16:35) [16]А я вот пишу и помогает. И окошек не бывает.
и WebBrowser.Silent := true; не пишем..
← →
DVM © (2012-09-22 00:16) [17]Попробуйте Chromium Embedded - намного удобнее.
← →
AV © (2012-09-26 09:02) [18]
> Попробуйте Chromium Embedded - намного удобнее.
Спасибо, погуглю..
Как раз придeмал, что автоматизация может и дальше пойти :) и отписываться, думаю, смогу на некоторые сообщения.
> знайка (21.09.12 16:35) [16]
> А я вот пишу и помогает. И окошек не бывает.
> и WebBrowser.Silent := true; не пишем..
Это от сайта/страницы зависит.
Если старница перегружена js-скриптами, а если они еще и кривоватые, легко можно словить окошко
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.064 c