![]() |
|
webbrowser checkbox tıklama - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: webbrowser checkbox tıklama (/showthread.php?tid=7056) Sayfalar:
1
2
|
webbrowser checkbox tıklama - sefere55 - 22-11-2022 merhaba programımda webbrowserda login ve onaylama işlemlerini yapabiliyorum ama bir türlü checkbox tıklamayı çözemedim. webbrowserde cok bilgim yok. yapmak istedigim https://www.nesine.com/sportoto sitesinde örnegin 1. macta 1 e tıklatmak bir tanesini tıklatabilsem gerisini halledebilirim diye düşünüyorum ama uzun zamandır ugraşıyorum çözemedim. şimdiden herkese teşekkürler Cvp: webbrowser checkbox tıklama - ugorkem - 22-11-2022 Bende uzun süre önce çok uğraşmıştım fakat normal yollardan başaramayınca işi javascripte yaptırmıştım. Belirttiğin sitede jQuery kullanıldığı için aşağıdaki kodu kullanabilirsin.
//id var ise
WebBrowser.ExecuteScript('$("#'+checkBoxId+'").click();' )
//id yok sadece name var ise
WebBrowser.ExecuteScript('$("input[name = '''+checkBoxName+''']").click();' );
Cvp: webbrowser checkbox tıklama - SimaWB - 23-11-2022 (22-11-2022, Saat: 21:22)sefere55 Adlı Kullanıcıdan Alıntı: merhaba programımda webbrowserda login ve onaylama işlemlerini yapabiliyorum ama bir türlü checkbox tıklamayı çözemedim. webbrowserde cok bilgim yok. yapmak istedigim https://www.nesine.com/sportoto sitesinde örnegin 1. macta 1 e tıklatmak bir tanesini tıklatabilsem gerisini halledebilirim diye düşünüyorum ama uzun zamandır ugraşıyorum çözemedim. şimdiden herkese teşekkürler Login vs. yaptırabildiğinize göre IHTMLElement olarak form elemanlarına ulaşabildiğinizi varsayıyorum. Bundan sonra yapılması gereken IHTMLElement'in type_ özelliğini kontrol etmek. Eğer type_ = 'checkbox' ise elemanın checked özelliğini true yapacaksınız. Cvp: webbrowser checkbox tıklama - sefere55 - 23-11-2022 (22-11-2022, Saat: 23:47)ugorkem Adlı Kullanıcıdan Alıntı: Bende uzun süre önce çok uğraşmıştım fakat normal yollardan başaramayınca işi javascripte yaptırmıştım. javascripte direk bu kodu calıştıramadım daha dogru nasıl yapıldıgını hiç bilmiyorum tüm kodu paylaşma sansınız var mı ilginize teşekkürler (23-11-2022, Saat: 09:48)SimaWB Adlı Kullanıcıdan Alıntı:(22-11-2022, Saat: 21:22)sefere55 Adlı Kullanıcıdan Alıntı: merhaba programımda webbrowserda login ve onaylama işlemlerini yapabiliyorum ama bir türlü checkbox tıklamayı çözemedim. webbrowserde cok bilgim yok. yapmak istedigim https://www.nesine.com/sportoto sitesinde örnegin 1. macta 1 e tıklatmak bir tanesini tıklatabilsem gerisini halledebilirim diye düşünüyorum ama uzun zamandır ugraşıyorum çözemedim. şimdiden herkese teşekkürler [quote pid='51045' dateline='1669186081'] Eğer type_ = 'checkbox' ise elemanın checked özelliğini true yapacaksınız. işte bu noktalarda ben cok yeniyim kod icin bi örnek paylaşabilirmisiniz [/quote] login işlemi icin kullandıgım kod bu şekilde procedure TForm1.Button11Click(Sender: TObject); var Buttons: OleVariant; Button: OleVariant; I: Integer; begin Buttons := WebBrowser1.OleObject.Document.getElementsByTagName('a'); for I := 0 to Buttons.Length - 1 do begin Button := Buttons.item(I); if Button.innerText = 'GİRİŞ' then begin Button.click(); Break; end; end; end; webbrowser checkbox tıklama - Hayati - 23-11-2022 ID si varsa WebBrowser1.OleObject.Document.GetElementByID('form1:checkbox1').checked := true;
denediniz mi?
Cvp: webbrowser checkbox tıklama - sefere55 - 24-11-2022 (23-11-2022, Saat: 20:08)Hayati Adlı Kullanıcıdan Alıntı: ID si varsa hayati bey teşekkürler bu kodla ilk satırda secim yapabiliyorum. ama 2. satırda herşey degişiyor sitede ulaştıgım kod "checkbox" id="00" data-row="1" data-column="0" data-group="0" seklinde burda data-row kısmı 2 3 4 .. diye devam ediyor burda id kısmıyla beraber data rowu nasıl belirtebilirim ? webbrowser checkbox tıklama - mrmarman - 24-11-2022 @sefere55 Sayfayı inceledim, Webbrowser ile (Explorer gerekçeli olsa gerek) çok yavaş. Bence chromium benzeri bir yapı kullanmak istenebilir. Konuya gelince, burada matematiği biraz konuşturmak lazım. Bir procedure oluşturmak istediğinizi düşünerek şöyle bir başlık olacağını değerlendiriyorum. procedure TForm1.DoCheck( aRowIdx, aCheckIdx:Integer; aState: boolean; aWebBrowser: TWebBrowser; aDoClick:boolean = false ); Sayfada Satır nosu 1'den 15'e kadar (aRowIdx), CheckBox için de soldan sağa 1'den başlayıp 12'ye kadar ( aCheckIdx ) olduğu şekilde kodladığımızı düşündüğünüzde aRowIdx, aCheckIdx : 1,1 ile 15,12 arasında bir adresleme yapıldığını düşünebiliriz. Burada CheckBox grupları Column Id'leri 6,7,8 ve 9 olarak üçerli gruplarda yerleştirilmiş. Dolayısıyla şöyle bir CASE yapısı hangi kolona odaklanılacağını verecektir. case aCheckIdx of 01..03 : LCol := 6; 04..06 : LCol := 7; 07..09 : LCol := 8; 10..12 : LCol := 9; end; Dolayısla matematiği de şöyle oluyor Kod: ((aCheckIdx-1) mod 3)nolu item sizin ilgilendiğiniz checkbox'u verecektir. Test edildi. NOT: her bir Checked değeri verilmesi hızlı ancak Click işlemi ücret hesap işlemi yaptırdığından görece yavaş kalıyor. * Bu nedenle sadece en son Checked edilme anında bir CLICK ettirmek tüm hesabı üretmek için kafi olduğundan akıllı bir yaklaşım olarak değerlendiriyorum. Cvp: webbrowser checkbox tıklama - sefere55 - 24-11-2022 (24-11-2022, Saat: 19:31)mrmarman Adlı Kullanıcıdan Alıntı: @sefere55 ustam cok teşekkür ederim hazırladıgınız o dosyayı benimle paylaşma sansınız var mı ? webbrowser checkbox tıklama - mrmarman - 25-11-2022 Yazmayı atlamışım yeni fark ettim. Kod: case aCheckIdx ofkarşılığı da Kod: LCol := 6 + ((aCheckIdx-1) div 3);şeklinde. Kaynak kod kısmına takılmayın. Siz hesabı nasıl yapabileceğinizi sormuştunuz, buna odaklanalım. Çözüme kavuşturma hazzını yaşayın isterim. Cvp: webbrowser checkbox tıklama - sefere55 - 25-11-2022 (25-11-2022, Saat: 12:07)mrmarman Adlı Kullanıcıdan Alıntı: Yazmayı atlamışım yeni fark ettim. ilginize ne kadar teşekkür etsem az haz konusunda da haklısınız ama benim asıl istedigim direk nokta atışı işaretlemek mesela 4. satır 3. checkbox. bunun icinde arkadasın kodu ilk satırda işlemi tamamlıyor WebBrowser1.OleObject.Document.GetElementByID('form1:checkbox1 ').checked := true; kodunda örnegin <input type="checkbox" id="11" data-row="5" data-column="1" data-group="1"> detayını burda nasıl belirtebilirim cünkü benim bu koddan sonra ki işlemi biraz karışık kimi checkboxu kaldırtacagım kimini ekletecegim şimdiden teşekkürler. |