• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Selenium Websitesine veri ekleme-alma

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
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>
 
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.

.
 
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:
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.
 
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:
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:
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.
 
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:
Geri
Üst