• DİKKAT

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

Web' de sorgulama buton tıklama sorunu

  • Konbuyu başlatan Konbuyu başlatan tamer42
  • Başlangıç tarihi Başlangıç tarihi

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,202
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

"https://www.turkiye.gov.tr/imei-sorgulama"linki üzerinden IMEI sorgulatma yapmak istediğimizde,
Aşağıdaki kodda "Sorgula" butonuna tıklatma yapamadım.

yardımcı olabilir misiniz,

ilginize şimden teşekkürler.
Kod:
Sub xlSorgula()
Dim isbn, Adres As String
Dim element As Object
Dim ie As New InternetExplorer
Dim doc As HTMLDocument
Dim Sht As Worksheet

Set Sht = ActiveSheet

isbn = Sht.Range("A2")

ie.Visible = True

Adres = "https://www.turkiye.gov.tr/imei-sorgulama"
ie.navigate Adres


Do
DoEvents

Loop Until ie.readyState = READYSTATE_COMPLETE
 
 Set doc = ie.document
 
doc.all.txtImei.Value = isbn
 
 Application.Wait (Now + TimeValue("00:00:02"))
 
''doc.forms(0).submit

''GoTo atla

Application.Wait (Now + TimeValue("00:00:01"))

For Each element In doc.getElementsByTagName("Submit")

    If element.Value = "Sorgula" Then
        element.Click
        Application.Wait (Now + TimeValue("00:00:01"))
    End If

Next element

atla:

End Sub
 

Ekli dosyalar

  • 1583144434_1.jpg
    1583144434_1.jpg
    13.7 KB · Görüntüleme: 1
Aşağıdaki satırı ekleyin.

Kod:
doc.getElementsByClassName("submitButton")(0).Click
 
Aşağıdaki satırı ekleyin.

Kod:
doc.getElementsByClassName("submitButton")(0).Click
Erdem Hocam ilginize teşekkürler,
yalnız verdiğiniz kodda bir hata verdi.

ben aşağıdaki şekilde çözdüm, benim için şimdi açılan sayfadaki verileri excel ortamına almam gerekiyor.

bu konuda yardımcı olabilir misiniz

Kod:
For Each inputfield In doc.getElementsByTagName("input")
    If inputfield.Type = "submit" And inputfield.Value = "Sorgula" Then
        inputfield.Click
        Application.Wait (Now + TimeValue("00:00:01"))
        
        Exit For
        
    End If
    
Next
 

Ekli dosyalar

  • 1583144434_1.jpg
    1583144434_1.jpg
    56.1 KB · Görüntüleme: 1
Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub xlSorgula()
Dim isbn, Adres As String
Dim element As Object
Dim ie As New InternetExplorer
Dim doc As HTMLDocument
Dim Sht As Worksheet

Set Sht = ActiveSheet

FindAndTerminate "IExplore.exe"
 Const MAX_WAIT_SEC As Long = 5

isbn = Sht.Range("A2")
If Len(isbn) <> 15 Then MsgBox ("IMEI 15 karakter olmalı"): Exit Sub

ie.Visible = False

Adres = "https://www.turkiye.gov.tr/imei-sorgulama"
ie.navigate Adres

    Do While ie.readyState <> READYSTATE_COMPLETE Or ie.Busy
    DoEvents
    Loop
 
    Set doc = ie.document
 
    doc.all.txtImei.Value = isbn
 
    doc.getElementsByClassName("submitButton")(0).Click

        elapsedTime = Timer
        Do
        If doc.getElementsByClassName("resultContainer").Length > 0 Then Exit Do
        If Timer - elapsedTime > MAX_WAIT_SEC Then
            MsgBox "Bekleme süresini aştı..... kod sonlandırıldı!"
            GoTo SafeExit:
        End If
        Loop

Set deg = doc.getElementsByTagName("dd")

    For Each metin In deg
    
     MsgBox metin.innerText
    Next metin
    
    
SafeExit:
ie.Quit

Set ie = Nothing

End Sub

Sub FindAndTerminate(ByVal strProcName As String)
    Dim objWMIService, objProcess, colProcess
    Dim strComputer, strList
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
    Set colProcess = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = '" & strProcName & "'")
    If colProcess.Count > 0 Then
        For Each objProcess In colProcess
            objProcess.Terminate
        Next objProcess
    End If
End Sub
 
Aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub xlSorgula()
Dim isbn, Adres As String
Dim element As Object
Dim ie As New InternetExplorer
Dim doc As HTMLDocument
Dim Sht As Worksheet

Set Sht = ActiveSheet

FindAndTerminate "IExplore.exe"
Const MAX_WAIT_SEC As Long = 5

isbn = Sht.Range("A2")
If Len(isbn) <> 15 Then MsgBox ("IMEI 15 karakter olmalı"): Exit Sub

ie.Visible = False

Adres = "https://www.turkiye.gov.tr/imei-sorgulama"
ie.navigate Adres

    Do While ie.readyState <> READYSTATE_COMPLETE Or ie.Busy
    DoEvents
    Loop

    Set doc = ie.document

    doc.all.txtImei.Value = isbn

    doc.getElementsByClassName("submitButton")(0).Click

        elapsedTime = Timer
        Do
        If doc.getElementsByClassName("resultContainer").Length > 0 Then Exit Do
        If Timer - elapsedTime > MAX_WAIT_SEC Then
            MsgBox "Bekleme süresini aştı..... kod sonlandırıldı!"
            GoTo SafeExit:
        End If
        Loop

Set deg = doc.getElementsByTagName("dd")

    For Each metin In deg
   
     MsgBox metin.innerText
    Next metin
   
   
SafeExit:
ie.Quit

Set ie = Nothing

End Sub

Sub FindAndTerminate(ByVal strProcName As String)
    Dim objWMIService, objProcess, colProcess
    Dim strComputer, strList
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
    Set colProcess = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = '" & strProcName & "'")
    If colProcess.Count > 0 Then
        For Each objProcess In colProcess
            objProcess.Terminate
        Next objProcess
    End If
End Sub
Teşekkürler Erdem Hocam
iyi ki varsınız, çok önemli olmayan ufak bir problem var, verileri sayfaya yazdırırken
IMEI numarası "3,55612E+14" gibi sayısal bir veri geliyor. olduğu gibi nasıl yazdırabiliriz?


Kod:
c=2
r=2
        veri = metin.innerText
     
        Sht.Cells(r, c) = veri
 
IMEI numaraları aynı hücrelere yazılacaksa kodu çalıştırmadan önce Hücre biçimlendirden "Metin yapabilirsiniz" yada kodu içine aşağıdaki satırı ekleyin.

Range("A2").NumberFormat = "@"
 
Şöyle bir sorun var. Fazla sorgulama yapıldığında CAPTCHA doğrulaması istiyor.
 
Maalesef, yok.
XMLHTTP ile veri alma imkanı olursa belki istemeyebilir. XMLHTTP için gereken parametreleri ben göremedim.
Belki ustalar bakabilir. @Haluk bey mesela :)
 
"gov.tr" uzantılı bir URL eğer CAPTCHA doğrulaması istiyorsa, fazla kurcalamamak gerekir....

.
 
"gov.tr" uzantılı bir URL eğer CAPTCHA doğrulaması istiyorsa, fazla kurcalamamak gerekir....

.
çok doğru söylüyorsunuz Haluk hocam
 
Geri
Üst