• DİKKAT

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

Web Sayfası İşlem Yapmıyor

  • Konbuyu başlatan Konbuyu başlatan askm
  • Başlangıç tarihi Başlangıç tarihi
Web sayfasını farklı kaydettiğim zaman mht olarak geliyor.
 
Kod:
Set a = .document.getElementsByClassName("openLink")
For Each b In a
If b.innerHTML = "GÜVENCE" Then
MsgBox b.innerText & " bulundu"
b.Click
End If
Next
Yukarıdaki kod ile normalde döngüye girmesi gerek ama ne MsgBox da uyarı veriyor ne de hiç bir işlem yapmadan f8 ile bile direkt geçiyor.Ama hiç bir işlem yapmıyor.
 
Ofise 2016 64 bit. Farklı siteler izin vermese anlayacağım. Ama bazı sitelerde sorun çıkarıyor. Önerisi olan olursa sevinirim
 
Sizin kodlarınızı ve web sayfasının linkini yazarsanız çözüm bulunabilir belki.
 
Sayın asri site kapalı ortamda çalışıyor. Table kısmının kodlarını paylaşıyorum.
Yalnız sıkıntı aynı kodlar daha önce çalışıyordu. Şimdi çalışmaz oldu. Web sayfasından veri, çekme ile ilgili bu siteden veya farklı siteden aldığım kodları bu sayfaya uyguluyorum. Diğerleri çalışırken bu sayfa hata veriyor.Yani bilgisayarda güncellemeden kaynaklı değil sanırım. id ile sorguluyorum, döngü ile sorguluyorum işlem yapmıyor. Sayfanın yüklenme kısmında bile hata veriyor.Çağrılan nesne istemciden ayrılmış uyarısı veriyor. On error resume next yaparsam da For Each de döngüye girmeden satırlarda a içinde b sadece bir tane varmış gibi işlem yapıyor. Msgbox da bile uyarı vermeden sonraki adıma geçip devam ediyor.

Kod:
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100.0%;border-collapse:collapse;mso-yfti-tbllook:1184">
 <tbody><tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;
  page-break-inside:avoid;height:45.0pt">
  <td style="padding:.75pt 11.25pt .75pt 11.25pt;height:45.0pt"></td>
  <td style="padding:.75pt .75pt .75pt .75pt;height:45.0pt">
  <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Helvetica","sans-serif";
  mso-fareast-font-family:"Times New Roman";color:#333333"><a href="http://deneme-1/" id="linkt_8" data-uyg-kod="DENEME" data-link="http://DENEME-1 "> DENEME-1/</a>
  <o:p></o:p></span></p>
  </td>
 </tr>
</tbody></table>

[c/ode]
 
Sayın asri site kapalı ortamda çalışıyor. Table kısmının kodlarını paylaşıyorum.
Yalnız sıkıntı aynı kodlar daha önce çalışıyordu. Şimdi çalışmaz oldu. Web sayfasından veri, çekme ile ilgili bu siteden veya farklı siteden aldığım kodları bu sayfaya uyguluyorum. Diğerleri çalışırken bu sayfa hata veriyor.Yani bilgisayarda güncellemeden kaynaklı değil sanırım. id ile sorguluyorum, döngü ile sorguluyorum işlem yapmıyor. Sayfanın yüklenme kısmında bile hata veriyor.Çağrılan nesne istemciden ayrılmış uyarısı veriyor. On error resume next yaparsam da For Each de döngüye girmeden satırlarda a içinde b sadece bir tane varmış gibi işlem yapıyor. Msgbox da bile uyarı vermeden sonraki adıma geçip devam ediyor.

Kod:
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100.0%;border-collapse:collapse;mso-yfti-tbllook:1184">
 <tbody><tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes;
  page-break-inside:avoid;height:45.0pt">
  <td style="padding:.75pt 11.25pt .75pt 11.25pt;height:45.0pt"></td>
  <td style="padding:.75pt .75pt .75pt .75pt;height:45.0pt">
  <p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Helvetica","sans-serif";
  mso-fareast-font-family:"Times New Roman";color:#333333"><a href="http://deneme-1/" id="linkt_8" data-uyg-kod="DENEME" data-link="http://DENEME-1 "> DENEME-1/</a>
  <o:p></o:p></span></p>
  </td>
 </tr>
</tbody></table>

[c/ode][/quote]

Tam anlaşılmadı ama, bu kodlarda neresi click lenek? Yada neresindeki değer alınıcak.
 
Deneme1 clicklenecek.a tag A göre ya da id=linkt_8 şeklinde yapıyorum.daha önce oluyordu. Şimdi olmuyor. Web sayfa kodları değişmemiş.
 
sitenin başında #shadow-root (open) yazıyor. Bundan dolayı olabilir mi?
 
Bu şekilde dener misiniz?

Buradaki DENEME-1/ bilgisi önemli > < iki tag arasındaki metnin tamamı olmalı.
If objCollection(i).innerText = "DENEME-1/" Then

Yada

üstündeki kodu kullanın
'If instr(objCollection(i).innerText ,"DENEME-1")>0 Then

Kod:
Dim islem, URL As String
Dim ie As Object
Dim objCollection As Object

Sub menu()
    Application.ScreenUpdating = False
    Call url_ac
    Call tikla
    Application.ScreenUpdating = True
End Sub

Sub bekle()
    With ie
        Do Until .readyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With
End Sub

Sub url_ac()
    URL = "[COLOR=Red]http://www.excel.web.tr/index.php[/COLOR]"
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
      .Navigate URL
      .Visible = 1
    End With

basla:
   Call bekle
   'KAYIT Olun yazıcı DENEME-1  olarak değiştirilecek
   If InStr(ie.document.body.innerText, "[COLOR=Red]KAYIT Olun[/COLOR]") = 0 Then
      GoTo basla
   End If
   
End Sub

Sub tikla()
    Set objCollection = ie.document.getElementsByTagName("a")
    i = 0
    Do While i < objCollection.Length
      'Bu şekilde başka linkleri de tıklama ihtimali olmak ile beraber kullanılabilir.
      'If instr(objCollection(i).innerText ,"DENEME-1")>0 Then

      'KAYIT Olun yazıcı DENEME-1  olarak değiştirilecek
      If objCollection(i).innerText = "[COLOR=Red]KAYIT Olun[/COLOR]" Then
         objCollection(i).Click
         Exit Do
      End If
      i = i + 1
    Loop
End Sub
 
Son düzenleme:
.Visible = 1 kısmında hata veriyor. Çağrılan nesne istemcilerden ayrılmış diyor.
 
.Visible = 1 kısmında hata veriyor. Çağrılan nesne istemcilerden ayrılmış diyor.

Visible ile ilgili bir sorun göremedim. Farklı şeyler için kodları güncelledim.
Kodların tamamını kopyalandığını doğrular mısınız?

Bendeki test de bir sorun olmadı. Kayıt Ol u tıkladı.
 
Komple yükledim. Sizin verdiğiniz sitede yüklüyor. Sıkıntı yok. Yalnız benim çalışmak istediğim sitede sorun oluyor. 430 hatası veriyor.(Class does not support or does Automation or does not support expected interface)
 
Komple yükledim. Sizin verdiğiniz sitede yüklüyor. Sıkıntı yok. Yalnız benim çalışmak istediğim sitede sorun oluyor. 430 hatası veriyor.(Class does not support or does Automation or does not support expected interface)

Bu aşamada yapısını bilmediğim bir link için nasıl yardımcı olabilirim ki :)
 
Bu kodları yeni bir excel dosyası açarak mı denediniz?
Bu şekilde yapmadıysanız yeni bir excel dosyası açarak kodları orada deneyin.

Belki kendi dosyanızda kullandığınız eklenti lerden kaynaklı bir sorun vardır.
 
Sıfır bir çalışma kitabına ekledim. Hatta tüm çalışma kitaplarını kapatıp yeniden sıfır bir çalışma kitabı açtı denedim. Aynı şekilde hata veriyor. Sanırım shadow-roots =open ile ilgili. Bu web sitedeki işlemleri nesne olarak gösteriyor sanırım.
 
Örneğin https://uyg.sgk.gov.tr/TesvikYersizFaydalanma/ siteye sadece kullanıc adı kısmına veri girişi yaptırabilirseniz. Burda da aynı komut var.

Yöntem aynı olduğu için birşey farketmeyecektir.
Sizin erişim sağlamaya çalıştığınız web sitesi ile iligili bir durum.
Detaylı incelenmeden bir sonuç çıkacağını düşünmüyorum.

Deneyiniz.
kolay gelsin.


Kod:
Dim islem, URL As String
Dim ie As Object
Dim objCollection As Object

Sub menu()
    Application.ScreenUpdating = False
    Call url_ac
    Call tikla
    Application.ScreenUpdating = True
End Sub

Sub bekle()
    With ie
        Do Until .readyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With
End Sub

Sub url_ac()
    URL = "https://uyg.sgk.gov.tr/TesvikYersizFaydalanma/"
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
      .Navigate URL
      .Visible = 1
    End With

basla:
   Call bekle
   'KAYIT Olun yazıcı DENEME-1  olarak değiştirilecek
   If InStr(ie.document.body.innerText, "Kullanıcı Adı") = 0 Then
      GoTo basla
   End If
   
End Sub

Sub tikla()
    Set objCollection = ie.document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
      If objCollection(i).Name = "basvuru.tcKimlikNo" Then
         objCollection(i).Value = "123456789"
         Exit Do
      End If
      i = i + 1
    Loop
    
    Call bekle
    
    Set objCollection = ie.document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
      If objCollection(i).Name = "basvuru.sistemSifre" Then
         objCollection(i).Value = "sistemsifre"
         Exit Do
      End If
      i = i + 1
    Loop
    
    Call bekle
    
    Set objCollection = ie.document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
      If objCollection(i).Name = "basvuru.isyeriSifre" Then
         objCollection(i).Value = "isyerisifre"
         Exit Do
      End If
      i = i + 1
    Loop
    
    Call bekle
    Application.Wait Now + TimeValue("00:00:04")
    Set objCollection = ie.document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
      If objCollection(i).ID = "userLogin_0" Then
         objCollection(i).Click
         Exit Do
      End If
      i = i + 1
    Loop
    
End Sub
 
Ben şu anda bu siteye de girmeye çalıştığımda aynı hatayı veriyor. Eklediğiniz referans var mı? Ya da kaldırdığınız. Ya da update olunca sorun çıkaran bir durum olabilir mi? Office 2016 64 bit yüklü.
 
Ben şu anda bu siteye de girmeye çalıştığımda aynı hatayı veriyor. Eklediğiniz referans var mı? Ya da kaldırdığınız. Ya da update olunca sorun çıkaran bir durum olabilir mi? Office 2016 64 bit yüklü.

özel bir referans seçimi yok, referans ekranı ektedir.

Office 2016 kaynaklı bir sorun da olabilir. Bende yüklü olmadığı için deneyemedim.
 

Ekli dosyalar

  • excelref.jpg
    excelref.jpg
    47 KB · Görüntüleme: 4
Geri
Üst