![]() |
|
a Tagına tıklama - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: a Tagına tıklama (/showthread.php?tid=6963) |
a Tagına tıklama - Nedim - 04-10-2022 İyi günler, webde bulunan a href butonuna tıklama yaptırmak istiyorum fakat bir türlü tıklama gerçekleşmiyor. Faklı varyasyonlar da denedim fakat çözemedim a href butonuna tıklama işlemini nasıl yapabilirim?
iDoc := coHTMLDocument.Create as IHtmlDocument2;
iDoc.Write(Url);
iDoc.Close;
aHREFtag := iDoc.All.Tags('a');
for iHref := 0 to aHREFtag.Length - 1 do
begin
if SameText(aHREFtag.Item(iHref).className, 'pagination-Go to next-separator') then
begin
aHREFtag.Item(0).click;
end;
<a href="/xxxx_pg_1" aria-label="Go to next page, page 2" class="pagination-next-separator">Go to next<svg xmlns="http://www.w3.org/2000/svg" width="8" height="12" viewBox="0 0 8 12" focusable="false" aria-hidden="true"> a Tagına tıklama - mrmarman - 04-10-2022 class name olarak fazladan karakter almışsınız. Sametext function ilgili TAG'a odaklanamıyor. SameText(aHREFtag.Item(iHref).className, "pagination-next-separator") şeklinde bir denemek isteyebilirsiniz.. Cvp: a Tagına tıklama - Nedim - 06-10-2022 (04-10-2022, Saat: 19:42)mrmarman Adlı Kullanıcıdan Alıntı: class name olarak fazladan karakter almışsınız. Sametext function ilgili TAG'a odaklanamıyor. Dikkatimden kaçmış; Sevgili Üstat araştırma yaparken sizin bir eksi paylaşımlarınıza denk geldim. Kod üzerinde Kendime göre düzenleme yaptım, ama bir türlü Next linkine tıklama yaptıramadım. Acaba sorun FMX tarafından kaynaklanıyor? Next linkine tıklama yaptırmıyor olabilir mi? Doc := coHTMLDocument.Create as IHtmlDocument2;
Doc.Write(WebUrl);
Doc.Close;
Sleep(3000); // Beklet
BoolBool := False;
Result := False;
I := 0;
XSayfa := Doc.All.Tags('span');
iLinkSay := Integer(Doc.Links.Length);
while (I < iLinkSay) And (Not BoolBool) And (iMaxSonarkiSayfa >= 0) do
begin
XLink := Doc.Links.Item(I).InnerText;
XSayfa := Doc.Links.Item(I).className;
if SameText(XLink, 'Next') then
begin
Dec(iMaxSonarkiSayfa); // Yoksa yeni sayfada aramaya devam edicez...
Doc.Links(I).Click; // HATA ----- First chance exception at $00007FF99D71FAEC. Exception class EOleSysError with message 'Gerçeklenmemiş'. Process Aramalar.exe (15448)
// Doc.Links.Item(I).Click;
// Doc.Item(0).Click();
// DeleteCharacter(Doc.Item(0).Click());
//
Sleep(3000); // Beklet
I := 0;
iLinkSay := Integer(Doc.Links.Length);
XLink := Doc.Links.Item(I);
Result := True;
end;
inc(i); // While
end;
a Tagına tıklama - vedat35 - 06-10-2022 butonun tüm html kodunu yapıştırın, buton tagları arasında onclick eventi tanımlı değilse sizin bu sanal clickiniz çalışmaz, onun yerine click event mesajını göndermeniz veya ilgili butonun fonksiyonunu javascript ile tetiklemeniz gerekir. Cvp: a Tagına tıklama - Nedim - 06-10-2022 (06-10-2022, Saat: 16:35)vedat35 Adlı Kullanıcıdan Alıntı: butonun tüm html kodunu yapıştırın, buton tagları arasında onclick eventi tanımlı değilse sizin bu sanal clickiniz çalışmaz, onun yerine click event mesajını göndermeniz veya ilgili butonun fonksiyonunu javascript ile tetiklemeniz gerekir. Hocam javascript ile buton tetikleme işlemi nasıl yapılır diye webde araştırma yaptım bir şey bulamadım. Örnek kod yada link paylaşır mısınız? a Tagına tıklama - mrmarman - 06-10-2022 @Nedim @vedat35 haklı. Click yapılamayabilir. Şöyle yapın eğer Kod: aHREFtag.Item(iHref).hrefiçeriğini sorgulayın bir URL geliyorsa onu direkt navigate ettirin. sanki click ettirmiş gibi olursunuz. Cvp: a Tagına tıklama - vedat35 - 11-10-2022 browser.execute_script( # JS.Element.Virtual.KeyChange
" var element = document.getElementById('elementidadıburayayazilir'); "+
" var evt = document.createEvent('HTMLEvents'); "+
" evt.initEvent('change', false, true); "+
" element.dispatchEvent(evt); "
)
break
örnek bir javascript event mesajı, change -> click olarak değiştirilmelidir, browser üzerinde javascript kodu execute ettirilmelidir. html kodunu ve sayfa js leri incelemeden birşey söylemek zor. |