Selenium Websitesine veri ekleme-alma

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Web sitelerinden id, xpath vs. klasik yöntemleriyle veri alabiliyorum yada bu sitelere veri ekleyebiliyorum. Ancak daha önce karşılaşmadığım bir durum söz konusu. Tüm textler için aynı id kullanılmış. Muhtemelen döngüsel bir sistem var. Ama nasıl tanımlanabileceği ile ilgili bilgiye ulaşamadım. Böyle bir durumla karşılaşıp çözüm üretebilen oldu mu?
Website kodları aşağıdaki şekilde:
HTML:
<div class="row mb-12" v-if="veliBilgileri[0].sagOlu==1">
<label class="col-sm-2 col-form-label col-form-label-sm" for="telEv" style="color:red; font-weight:bolder">Tel. (Ev):</label>
<div class="col-sm-10">
<div class="row">
<div class="col-sm-12"><input type="text" :value="veliBilgileri[0].evTel" v-on:input="yeni('ev',$event)" class="form-control" @keyup="sayi" maxlength="10" id="this.veliBilgileri[0].secretID" placeholder="Yeni Ev Telefonu Yazınız"/></div>
</div>
</div>
</div>
<div class="row mb-12" v-if="veliBilgileri[0].sagOlu==1">
<label class="col-sm-2 col-form-label col-form-label-sm" for="telCep" style="color:red; font-weight:bolder">Tel.(Cep):</label>
<div class="col-sm-10">
<div class="row">
<div class="col-sm-12"><input type="text" :value="veliBilgileri[0].cepTel" class="form-control" v-on:input="yeni('cep',$event)" @keyup="sayi" maxlength="10" id="this.veliBilgileri[0].secretID" placeholder="Yeni Cep Telefonu Yazınız"/></div>
</div>
                                                                  
</div>
</div>
                                                        
<div class="row mb-12" v-if="veliBilgileri[0].sagOlu==1">
<label class="col-sm-2 col-form-label col-form-label-sm" for="telIs" style="color:red; font-weight:bolder">Tel.(İş):</label>
<div class="col-sm-10">
<div class="row">
<div class="col-sm-12"><input type="text" :value="veliBilgileri[0].isTel" v-on:input="yeni('is',$event)" class="form-control" @keyup="sayi" maxlength="10" id="this.veliBilgileri[0].secretID" placeholder="Yeni İş Telefonu Yazınız"/></div>
</div>
                                                                  
</div>
</div>
<div class="row mb-12" v-if="veliBilgileri[0].sagOlu==1">
<label class="col-sm-2 col-form-label col-form-label-sm" for="eposta" style="color:red; font-weight:bolder">Eposta Adresi:</label>
<div class="col-sm-10">
<div class="row">
<div class="col-sm-12"><input type="text" :value="veliBilgileri[0].eposta" v-on:input="yeni('eposta',$event)"  class="form-control"  id="this.veliBilgileri[0].secretID" placeholder="Yeni E-posta Adresi Yazınız"/></div>
</div>
</div>
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Merhaba;

Normalde "id" tekil olarak bilinir ancak, aynı "id" nin birden fazla verilmesi de olağan bir durumdur ve aranan ilk "id" listelenir.

Belirttiğiniz durumda ise, "tag" veya "class" ile sonuca gidebilirsiniz.

.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
id="this.veliBilgileri[0].secretID" veri bu nesneye giriliyor. Tüm text girişlerinde aynı tanım var. Denediğim hiçbir yöntem olmadı maalesef.
imacros ile nerelerin kullanıldığını anlamak için kayıt yaptığımda aşağıdaki kodlar oluşuyor. Muhtemelen ilgili nesneye sayısal bir değer tanıtmam gerekiyor ama nasılını çözemedim. POS ile ifadelendirilen sayısal veriyi Selenium VBA'da tanımlama yöntemi varsa sorun çözülecektir diye düşünüyorum.
HTML:
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:Form1 ATTR=ID:this.veliBilgileri[0].secretID CONTENT=535...
TAG POS=2 TYPE=INPUT:TEXT FORM=ID:Form1 ATTR=ID:this.veliBilgileri[0].secretID CONTENT=530...
TAG POS=3 TYPE=INPUT:TEXT FORM=ID:Form1 ATTR=ID:this.veliBilgileri[0].secretID CONTENT=530...
TAG POS=1 TYPE=BUTTON FORM=ID:Form1 ATTR=ID:OOMToolbarActive1_btnKaydet
TAG POS=1 TYPE=BUTTON FORM=ID:Form1 ATTR=ID:modalConfirmBoxBtn1
 
Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Merhaba,
Veri girişi için:
HTML:
Set nesne = crm.FindElementsByTag("input")
nesne(43).Clear
nesne(43).SendKeys 111111111 'ev tel
; veri almak için
HTML:
MsgBox nesne(43).Value
ile sonuca ulaştım. Ama websayfasındaki input sayılarında artış yada eksilme olduğunda ne kadar sağlıklı olur bilemiyorum. Benzer sorunla karşılaşan varsa bu şekilde çözüme ulaşabilir.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

For Each içinde alsanız input nesnesini ve döngü içinde IF input value = "ev tel" gibi bir değeri aldığında işlem yaptırsanız, placeholder da olur gibi ilk mesaja göre. Bu şekilde input sayısının önemi kalmaz sanırım.
 
Son düzenleme:
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Belki böyle olabilir.

Kod:
    Dim evTelefonuElement As Selenium.WebElement
    Set evTelefonuElement = driver.FindElementByXPath("//label[@for='telEv']/following-sibling::div//input")
   
    Dim evTelefonu As String
    'evTelefonu = evTelefonuElement.Attribute("value")

   evTelefonuElement.SendKeys "22222"

    MsgBox "Ev Telefonu: " & evTelefonu
 
Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Belki böyle olabilir.

Kod:
    Dim evTelefonuElement As Selenium.WebElement
    Set evTelefonuElement = driver.FindElementByXPath("//label[@for='telEv']/following-sibling::div//input")
  
    Dim evTelefonu As String
    'evTelefonu = evTelefonuElement.Attribute("value")

   evTelefonuElement.SendKeys "22222"

    MsgBox "Ev Telefonu: " & evTelefonu
Evet, bu yöntem işe yaradı. Aradığım buydu. Teşekkür ederim.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
"flResimSec" butonunu klasik yöntemlerle clickleyemiyorum. Bununla ilgili bir öneriniz olabilir mi?
HTML:
                                            <TR>
                                                <TD width="10"></TD>
                                                <TD class="frmIc" style="WIDTH: 163px"><STRONG><FONT color="#ff0000">Okul No</FONT></STRONG></TD>
                                                <TD style="WIDTH: 1px" width="1">:</TD>
                                                <TD style="WIDTH: 113px">
                                                    <input name="txtOkulNo" type="text" value="167" maxlength="6" id="txtOkulNo" disabled="disabled" class="aspNetDisabled frmInputDisabled2" style="width:100px;" /></TD>
                                                <TD width="10"></TD> <!--onpropertychange="Goster()"-->
                                                <TD class="frmIc" align="center" colSpan="3"><input name="flResimSec" type="file" id="flResimSec" class="submitButton" style="WIDTH: 60px; HEIGHT: 19px" onchange="Goster()" size="1" /></TD>
                                                <TD width="10"></TD>
                                            </TR>
ya da aşağıdaki gibi bir sayfa yapısı var. Birden çok resim yükleme seçeneği var ama nasıl clicklenir hiçbir veriye ulaşamıyorum.
PHP:
 <div class="row" id="listeler" v-if="showList">
                    <div class="col-sm-12">
                        <div class="card">
                            <div class="card-header">
                                <h5>Öğrenci Fotoğrafları</h5>
                            </div>
                            <div class="card-body">
                                <div class="row" id="divPhotoList">
                                    <div class="col-xl-2 col-md-12" v-for="(index) in ogrenciler" >
                                         <div class="card">
                                                    <div class="card-header">
                                                        <h5>{{SinifSubeAdi}}</h5>
                                                    </div>
                                                    <div class="card-body text-center">
                                                        <div class="m-b-25">
                                                            <img :id="'img'+index.TCKimlikNo+'Old'" :src="index.OgrenciFoto" style="display:none">
                                                            <img :id="'img'+index.TCKimlikNo" :src="index.OgrenciFoto" class="img-radius" :alt="index.Adi+' '+index.Soyadi" height="122" width="105" data-change="0" :data-kayit="index.KayitTuru">
                                                        </div>
                                                        <h6 class="f-w-600">{{index.OgrNo}}-{{index.Adi}}<br />{{index.Soyadi}}</h6>
                                                        <a href="javascript:void(0)" @click="btnFotofrafYukle(1,index.TCKimlikNo)"><i class="feather icon-edit m-t-10" :class="isMobile()?'f-32':'f-24'"></i></a>
                                                         <a href="javascript:void(0)" :id="'undo'+index.TCKimlikNo"  style="visibility:hidden"  @click="btnFotofrafYukle(0,index.TCKimlikNo)" >
                                                             <i class="fas fa-undo-alt m-t-10" :class="isMobile()?'f-32':'f-24'" style="color:red" title="Geri Al">
                                                             </i></a>
                                                    </div>
                                                        </div>
                                    </div>
                                </div>

                            </div>
                        </div>
                    </div>
                </div>
 
Son düzenleme:
Üst