Webbrowser Radio Checked Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Webbrowser Radio Checked Sorunu

Mesaj gönderen kocivan »

Merhabalar,
Webbrowser üzerinden sitede ki radio düğmelerini seçmek istiyorum ancak ne yaptıysam başaramadım. Fikri olan var mı acaba? İlki <div id="r1"> ikinsi <div id="r2"> den başlıyor. Aşağıdaki html kodunda <div id="r1"> de kini seçili bıraktım fikir verebilir belki.

Kod: Tümünü seç

<tr><td>
							<table width="325px" bordercolor="green" border="0" cellspacing="0" cellpadding="0" align="center">
								<tbody><tr class="row15">
									<td align="left" class="labelFont" width="280px">&nbsp;<b>Kesinti İçin Sorgulama Yap</b></td>
									<td align="center" width="2px">:</td>
									<td align="left" colspan="2" width="38px">
										<div id="r1">
											<div class="clearfix prettyradio labelright  red"><input type="radio" class="myClass" value="Alim Gerceklesecek" name="answer" data-color="red" style="display: none;" checked="checked"><a href="#" class="checked"></a>
<label for="undefined"></label></div>
										</div>
				 					</td>
								</tr> 
								<tr class="row15">
									<td align="left" class="labelFont">&nbsp;<b>Alım Önceden Gerçekleşti Kesinti Yükle</b></td>
									<td align="center">:</td>
									<td align="left" colspan="2">
										<div id="r2">
											<div class="clearfix prettyradio labelright  green"><input type="radio" class="myClass" value="Alim Gerceklesti" name="answer" style="display: none;"><a href="#" class=""></a>
<label for="undefined"></label></div>
										</div>
				 					</td>
								</tr>															
							</tbody></table>
						</td></tr>
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Webbrowser Radio Checked Sorunu

Mesaj gönderen esistem »

Selam;

Kod: Tümünü seç

<?
$deger=$_GET['secim'];
echo $deger;
?>
<form method='GET' action='test.php'>
<table width="325px" bordercolor="green" border="0" cellspacing="0" cellpadding="0" align="center">
                        <tr class="row15">
                           <td align="left" class="labelFont" width="280px">&nbsp;<b>Kesinti İçin Sorgulama Yap</b></td>
                           <td align="center" width="2px">:</td>
                           <td align="left" colspan="2" width="38px">
<input type='radio' name='secim' checked='true' value='1'>
							</td>
                        </tr>
                        <tr class="row15">
                           <td align="left" class="labelFont">&nbsp;<b>Alım Önceden Gerçekleşti Kesinti Yükle</b></td>
                           <td align="center">:</td>
                           <td align="left" colspan="2">
<input type='radio' name='secim' value='2'>
                            </td>
                        </tr>                                             
                        <tr class="row15">
                           <td align="left" class="labelFont">&nbsp;<b>Gönder</b></td>
                           <td align="center">:</td>
                           <td align="left" colspan="2">
<input type='submit'>
                            </td>
                        </tr>                                             
                     </table>
</form>
input'un tipini radio olarak verip, name'lerini aynı yaptıklarınıza farklı value değerleri vermeniz yeterli olacaktır. name'leri aynı olanlar bir radio grup olmuş olacaktır.
Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Re: Webbrowser Radio Checked Sorunu

Mesaj gönderen kocivan »

Merhabalar,
Cevap için teşekkürler sorumu yanlış mı anladınız acaba. Program üzerindeki webbrowserda açılan sayfada ki radio düğmelerine tıklamak istiyorum. inputu aşağıda ki gibi belirteceğiz sanırım ama tipini ve ismini nasıl belirtirim bilmiyorum.

Kod: Tümünü seç

webbrowser1.oleobject.document.getelementsbytagname('input')
Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Re: Webbrowser Radio Checked Sorunu

Mesaj gönderen kocivan »

Denediğim yöntemler,

Tablolar arası dolaşıp click yada checked:=true denedim kod aşağıda

Kod: Tümünü seç

procedure TForm3.Button2Click(Sender: TObject);
var
tablesCount:Integer;   //Tablo sayısı
tti:Integer;           //For döngüsü için ovTable item kısmına tti değeri atanır tablolar arası geçiş için
tr:Integer;            //For döngüsü için ovTable item kısmına tr değeri atanır satırlar arası geçiş için
tc:Integer;           //For döngüsü için satırı bulduktan sonra hücreler arası dolaşmak için tc değeri atanır
ovTable: OleVariant;  //değişken türü önemli
begin
Memo1.Clear;



tablesCount := WebBrowser1.OleObject.Document.all.tags('TABLE').Length;
Memo1.Lines.Add(inttostr(tablesCount));

ovTable:=WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
Memo1.Lines.Add(inttostr(ovTable.Rows.Length));

        for tti := 0 to tablesCount-1 do      //tablolar dolaşılıyor
          begin
              ovTable:=WebBrowser1.OleObject.Document.all.tags('TABLE').item(tti); //tti ye göre tablo bulunuyor

              for tr := 0 to ovTable.Rows.Length-1 do //bulunan tablonun sütünları dolaşılıyor

                begin

                    for tc := 0 to ovTable.Rows.Item(tr).Cells.Length - 1 do //bulunan tablonun hücreleri dolaşılıyor
                      begin

                          Memo1.Lines.Add(ovTable.Rows.Item(tr).Cells.Item(tc).InnerText);
                          Memo1.Lines.add(ovTable.Rows.item(tr).cells.item(tc).outertext);
                          if ovTable.Rows.item(tr).cells.item(tc).outertext=' Alım Önceden Gerçekleşti Kesinti Yükle: ' then
                                  begin
                                      Memo1.Clear;
                                      ovTable.Rows.item(tr).cells.item(tc).click;
                                      ovTable.Rows.item(tr).cells.item(tc).checked:=true
//
                                  end;

                      end;



                end;



          end;



end;
İnput değerlerini dolaşıp click yada checked:=true denedim

Kod: Tümünü seç

for I := 0 to WebBrowser1.OleObject.Document.All.Tags('input').Length-1 do
begin
    Memo1.Lines.Add(inttostr(i));
    Memo1.Lines.Add(WebBrowser1.OleObject.Document.All.Tags('input').item(i));

    WebBrowser1.OleObject.Document.All.Tags('input').item(i).Checked := True;
    WebBrowser1.OleObject.Document.All.Tags('input').item(i).SetAttribute('checked', 'checked');
end;
Value değerlerini dolaşıp checked:=true denedim

Kod: Tümünü seç

temp:=WebBrowser1.OleObject.Document.all.GetAttribute('Value').item(i);
                for i := 0 to WebBrowser1.OleObject.Document.all.length-1 do
                  begin
                      if temp.GetAttribute('Value') = 'Alim Gerceklesecek' then
                        begin
                            temp.SetAttribute('checked', 'checked');
                        end;
                  end;
SetAttribute ile birşey elde edebilir miyim diğe aşağıda ki kodu denedim

Kod: Tümünü seç

WebBrowser1.OleObject.Document.GetAttribute('Value').Item(0).SetAttribute('checked', 'checked');

Ama maalesef hiç birinden sonuç alamadım.
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Webbrowser Radio Checked Sorunu

Mesaj gönderen esistem »

Haklısınız soruyu yanlış anlamışım, fakat istediğiniz bilgide bende yok maalesef :(
Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Re: Webbrowser Radio Checked Sorunu

Mesaj gönderen kocivan »

Olsun yinede teşekkürler uğraşıyorum bakalım bir şekilde çözeceğiz.
Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Re: Webbrowser Radio Checked Sorunu

Mesaj gönderen kocivan »

Şimdilik sorunu aşağıdaki gibi çözdüm bir tane daha a tagı eklenirse siteye ne yaparım bilmem. Site içi değişikliklerden etkilenmeyecek bir yöntem önerisi olan varsa paylaşa bilirse sevinirim. Her keze iyi geceler.

Kod: Tümünü seç

WebBrowser1.OleObject.Document.getElementsByTagName('a').Item(18).Click;
Cevapla