Webbrowser ile tıklama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
esrehmaan

Webbrowser ile tıklama

Mesaj gönderen esrehmaan »

merhaba arkadaşlar,


<button value="submit" class="submitBtn"><span>Submit</span></button>

bu tip class lı butonların id si olmadığı için tıklayamıyorum bu tip durumlarda ne yapmamız gerekiyor acaba ?

web.OleObject.Document.GetElementByID('buton_id').click;

http://www.filamentgroup.com/lab/update ... image_spr/

bu linkde bu tip button nasıl yapılır onu göstermişler.. bu tip buttona nasıl delphiden tıklata bilirim acaba ?


Şimdiden teşekkürler
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen SimaWB »

Kod: Tümünü seç

web.OleObject.Document.getElementsByTagName("button");
sana tüm butonları döndürür.
Kaçıncı butonla işlem yapacaksan onun indeksini kullanırsın.
There's no place like 127.0.0.1
esrehmaan

Re: Webbrowser ile tıklama

Mesaj gönderen esrehmaan »

tüm buttonların id değerlerini nasıl aldıra bilirim..

memo1.Lines.Add(web.OleObject.Document.getElementsByTagName('button));

yazdım ama memo ya sadece [object] yazıp duruyor
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen SimaWB »

Denemedim ama şöyle birşey olabilir;

Kod: Tümünü seç

var
  buttonlar: IHTMLElementCollection;
  btn: IHTMLElement;            
  i: Integer;
begin
  buttonlar := web.OleObject.Document.getElementsByTagName("button");
  for i := 0 to Pred(buttonlar.length) do
  begin
    btn := buttonlar.item(i, EmptyParam) as IHTMLElement;
    Memo1.Lines.Add(btn.id);
  end;
end;
There's no place like 127.0.0.1
esrehmaan

Re: Webbrowser ile tıklama

Mesaj gönderen esrehmaan »

dedimde hatalar verdi

buttonlar: IHTMLElementCollection;
btn: IHTMLElement;
Memo1.Lines.Add(btn.id);
length...vs

bunlarda hata verdi..


Kod: Tümünü seç

<div class="Buttons">
        <a href="#" class="Button Button18 RedButton"><strong>click</strong><span></span></a>
                
            
        
    </div>

tıklamak istediğim buton bu id yok olunca sorun çıkartıyor
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen SimaWB »

Siz sorunuzu sorduğunuzda verdiğiniz ilk bilgilerde <button> tag'ından bahsediyordunuz şimdi verdiğiniz örnekte ise <a> tag'ı kullanılmış???

Kod: Tümünü seç

linkler := web.OleObject.Document.getElementsByTagName("a");
//yada linkler := web.OleObject.Document.all.tags('A');
linkler.Item(0).click;//ilk linkin Click event'ini çalıştır
There's no place like 127.0.0.1
ballyunuvar
Üye
Mesajlar: 21
Kayıt: 14 Ara 2011 02:20
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen ballyunuvar »

Merhabalar

a tagına tıklamaya çalışıyorum.Kodlarım

Kod: Tümünü seç

var
  linkler :Variant;
  i: Integer;
begin
  linkler := WebBrowser1.OleObject.Document.all.tags('A');
  for i := 0 to linkler.length-1 do
 begin
   linkler.Item(3).click;
    Memo1.Lines.Add(linkler.id);
end;
Üye Bulunamadı hatası alıyorum yardım edermisiniz. Çok önemli bi konu benim için :)
En son ballyunuvar tarafından 27 Mar 2013 01:03 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen SimaWB »

Verdiğiniz örnekte; madem 3. linke tıklayacaksınız o zaman for döngüsüne gerek yok.
ID'sini biliyorsanız şu şekilde kolayca link'in OnClick event'ini tetikleyebilirsiniz:

Kod: Tümünü seç

WebBrowser.OleObject.Document.GetElementByID('label_id').Click;
There's no place like 127.0.0.1
ballyunuvar
Üye
Mesajlar: 21
Kayıt: 14 Ara 2011 02:20
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen ballyunuvar »

Cevabınız için teşekkürler:)

Yalnız benim tıklayacağım <a> tagı şöyle birde İtem(3) diye kafadan attım deniyordum,tıklattırabilsem önemli değil bulurum ben o kacıncı sırada oldugunu.

Kod: Tümünü seç

<li class="sellSameItem bg-main "> 
<a href="http://www.asdfg.com/upload/adim-2/?">Taslak Olarak Kullan</a>
</li>
listenin içinde bir a tagı var onu tıklattıracam ama...
Sağlıcakla
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen SimaWB »

Şu anda deneme şansım yok ama şöyle birşey olabilir:

Kod: Tümünü seç

var
  aList: OleVariant;
  a: IHTMLElement;
  i: integer;
  link: string;
begin
  aList := WebBrowser1.OleObject.Document.all.tags('a');
  for i: = 0 to aList.length - 1 do
  begin
    a := aList.item(i) as IHTMLElement;
    if (a.innerHTML = 'Taslak Olarak Kullan') then
    begin
      link := a.getAttribute('href',0);
      //bundan sonra link'i istediğiniz şekilde kullanın. 
      //Mesela WebBrowser1.Navigate içinde... 
    end;
end;
end;
There's no place like 127.0.0.1
ballyunuvar
Üye
Mesajlar: 21
Kayıt: 14 Ara 2011 02:20
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen ballyunuvar »

Malesef bu kodda üye bulunamadı hatası veriyor :(
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen SimaWB »

şimdi deneme şansım oldu. Çalışan örnek;

Kod: Tümünü seç

var
  Document: IHTMLDocument2;
  Body: IHTMLElement2;
  aList: IHTMLElementCollection;
  a: IHTMLElement;
  I: Integer;
  link: string;
begin
  if Supports(WebBrowser1.Document, IHTMLDocument2, Document) then
    if Supports(Document.body, IHTMLElement2, Body) then
    begin
      aList := Body.getElementsByTagName('a');
      for I := 0 to Pred(aList.length) do
      begin
        a := aList.item(I, EmptyParam) as IHTMLElement;
        link := a.getAttribute('href', 0);
        //...
      end;
    end;
end;
There's no place like 127.0.0.1
ballyunuvar
Üye
Mesajlar: 21
Kayıt: 14 Ara 2011 02:20
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen ballyunuvar »

Teşekkürler
kodlar çalışıyor hata vermiyor fakat benim istediğim linke tıklamıyor.
Tıklattırmam için

Kod: Tümünü seç

link := a.getAttribute('href', 0);
deki 0 degerini değiştirdim olmadı

Kod: Tümünü seç

WebBrowser1.OleObject.Document.GetElementByID(link).Click;
yaptım hata verdi.
Tıklatacağım yer

Kod: Tümünü seç

<li class="sellSameItem bg-main "> 
<a href="http://www.asdfg.com/upload/adim-2/?">Taslak Olarak Kullan</a>
</li>
nasıl yapabiliriz ?
birde sayfadaki dropdown (delphi de combobox) lardan istenilen degeri nasıl seçtirebilriz?
Cevabınızı beklemekteyim
İyi Çalışmalar
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen vkamadan »

merhaba ,
direk elde edilen a elementine tıklayın a.click;
Volkan KAMADAN
www.polisoft.com.tr
ballyunuvar
Üye
Mesajlar: 21
Kayıt: 14 Ara 2011 02:20
İletişim:

Re: Webbrowser ile tıklama

Mesaj gönderen ballyunuvar »

Volkan Bey Merhaba

Kod: Tümünü seç

var
  Document: IHTMLDocument2;
  Body: IHTMLElement2;
  aList: IHTMLElementCollection;
  a: IHTMLElement;
  I: Integer;
  link: string;
begin
  if Supports(WebBrowser1.Document, IHTMLDocument2, Document) then
    if Supports(Document.body, IHTMLElement2, Body) then
    begin
      aList := Body.getElementsByTagName('a');
      for I := 0 to Pred(aList.length) do
      begin
        a := aList.item(I, EmptyParam) as IHTMLElement;
        link := a.getAttribute('href', 0);
          a.click;
        //...
      end;
    end;
end;
şeklinde bi kodlama yapılmasını istediniz herald bunu yaptıgım zaman programı nasıl durdurdugumu bilemedim:)
Ben
link.click; gibi bi şey denemek istedim fakat ide bölümünde hata aldım string deger diyor?
İyi çalışmalar
Cevapla