TWebBrowser üzerinden bir sayfa açıyorum
Bu sayfada bir edit alanı var bu alanı programdan otomatik doldurtuyorum
ve ekranda bulunan sorgula butonuna mouse ile basarsam sorun olmadan çalışıyor
fakat programdan aşağıdaki yöntem ile click yaptırdığımda bana enaz üç karakter girmelisiniz diye bir uyarı veriyor
bir butona farklı click işlemi varmıdır
teşekkürler
Not: önceki yazdıklarınızın birçoğunu okudum ve aşağıdaki yöntemleride denedim.
Silent mod : True
UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322)';
Registiry ekleme yönteminide denedim.
ovural yazdı:biraz geç olacak ama
Register dakianahtarının altına uygulamanızın exe adını dword değeri olarak eklerseniz istediğiniz modda çalışır ..Kod: Tümünü seç
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
ben dpr dosyasının içine aşağıdaki kodu ekliyorum .Kod: Tümünü seç
Uses Registry; try r := TRegistry.Create; r.RootKey := HKEY_CURRENT_USER; r.OpenKey('\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True); r.WriteInteger(ExtractFileName ( Application.ExeName) , 11001); r.CloseKey; except end; r.Free; Application.Initialize; Application.MainFormOnTaskbar := True;
Internet Explorer 11 için 11001
Internet Explorer 10 için 10001
Internet Explorer 9 için 9999 değerini kullanırsınız
internette FEATURE_BROWSER_EMULATION diye aratırsanız güncel ve diğer değerleride görebilirsiniz ..
Click deneme 1
Kod: Tümünü seç
pr_ButtonBas('form1:buttonBarkodSorgula', 'INPUT', 'submit', 'Sorgula');
...
...
procedure TFrmWBIlacBilgiAl.pr_ButtonBas(sIdName, sTagName, sType, sValue:String);
var
ovElements: OleVariant;
iI : Integer;
begin
try
ovElements := WB.OleObject.Document.forms.item(0).elements;
for iI := 0 to (ovElements.Length - 1) do
begin
if sIdName <> '' then
if ovElements.item(iI).Id <> sIdName then Continue;
if (ovElements.item(iI).tagName = sTagName) and (ovElements.item(iI).type = sType) and (ovElements.item(iI).Value = sValue) then
begin
ovElements.item(iI).Click;
end;
end;
except
on E: Exception do
begin
ShowMessage('Sisteme Giriş yapılamadı tekrar deneyiniz.' + #13#10 + 'Hata Mesajı : ' + E.Message);
end;
end;
end;
Click Deneme 2 ise Links.Length sonucu 0 geliyor
Kod: Tümünü seç
procedure TFrmBilgiAl.pr_ButtonBas1(sIdName, sTagName, sType, sValue:String);
var
Doc: IHTMLDocument2;
Links: IHTMLElementCollection;
aLink: IHTMLElement;
i: integer;
begin
Doc := WB.Document as IHTMLDocument2;
Links := Doc.Links;
for i := 0 to Links.Length-1 do
begin
aLink := Links.Item(i, EmptyParam) as IHTMLElement;
if sIdName <> '' then
if aLink.id <> sIdName then Continue;
aLink.Click;
end;
end;