Selenium ile Web Sitesi Etiketinden Veri Alma

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
239
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Kod:
Sub vericek()

Dim baglan As New Selenium.WebDriver

Dim tablo As TableElement

Dim lastRow As Long



baglan.Start "chrome"

baglan.Get "http://deneme.aspx"

baglan.FindElementById("login-username").SendKeys "123"

baglan.FindElementById("login-password").SendKeys "123"

baglan.FindElementById("login-btn").Click

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



lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To lastRow

baglan.FindElementById("txtSicilTCNO").SendKeys Cells(i, 1).Value

baglan.FindElementById("btnSicilTCNO").Click

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

Set tablo = baglan.FindElementById("grdHizmetKontrol").AsTable

.

.

.

.

.



baglan.FindElementById("txtSicilTCNO").Clear

Next i
Merhabalar, herkese hayırlı günler dilerim. Yukarıda ki kod çalışıyor ve bu kod ile web sitesindeki "Grdhizmetkontrol" İD'sine sahip tabloyu Excele aktarabiliyorum
Benim takıldığım nokta;

TC ile sorguladığımda açılan sayfada “grdHizmetKontrol” ID’si ile gelen bu tabloda , yazı fontu kırmızı olan satırlar var. Ben tablodaki bu kırmızı satırları, sorguladığım TC’nin yanındaki sütunlara sırayla yazdırmak istiyorum.

Sağ tık yapıp “İncele” dediğimde kırmızı renk ile yazılan satırların kodu ““<tr style=”color:Red;”> bu şekilde, alt sekmesinde de açıklaması “td” içerisinde yazıyor.

Yardımcı olabilirseniz veyahut bir yol gösterebilirseniz çok mutlu olurum.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Site adresini bildirirseniz yardımcı olmaya çalışalım.
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
239
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Site adresini bildirirseniz yardımcı olmaya çalışalım.
Sayın hocam, kamu kurumunda görev yapıyorum. İnternet dışarıya kapalı olduğundan maalesef siteye dışarıdan giriş mümkün olmuyor. O sebeple bu şekilde örnek vermek zorunda kaldım ama isterseniz, İncele kısmının ekran görüntüsünü atabilirim
 

Astalavista58

Altın Üye
Katılım
20 Ocak 2020
Mesajlar
239
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
20-02-2025
Arkadaşlar kodu bu şekilde son hali ve çalışıyor.
Mantığı, istediğiniz bir siteye Kullanıcı Adı ve Şifre ile giriş yapıyor,
Excel'de "A" sütunundaki verileri sırayla Web Sitesinde sorguluyor,
Sorguladığında açılan sayfada "grdHizmetKontrol" ID'sine sahip tablonun içindeki satırları tek tek geziyor,
Yazı fontu "Color:Red" olan satırları, sorguladığımız verinin yanındaki boş sütuna sırayla yazıyor.
Belki birilerinin işine yarar.


Kod:
Sub FindRedRowInTable()

Dim baglan As New Selenium.WebDriver

Dim lastRow As Long

Dim lastColumn As Long

lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column

baglan.Start "chrome"

baglan.Get "https://www.siteismi.com

    baglan.FindElementById("login-username").SendKeys "......" 'Kullanıcı adı

    baglan.FindElementById("login-password").SendKeys "....." 'Şifre

    baglan.FindElementById("login-btn").Click

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

For i = 1 To lastRow

    baglan.FindElementById("txtSicilTCNO").SendKeys Cells(i, 1).Value

    baglan.FindElementById("btnSicilTCNO").Click

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

    Dim tablo As WebElement

    Set tablo = baglan.FindElementById("grdHizmetKontrol")

    Dim myRows As WebElements

    Set myRows = tablo.FindElementsByTag("tr")

    Dim j As Long

    For j = 1 To myRows.Count

        Dim RowStyle As String

        RowStyle = myRows(j).Attribute("style")

        RowStyle = Replace(LCase(RowStyle), " ", "")

        If RowStyle = "color:red;" Then

            Dim k As Long

            Dim foundEmpty As Boolean

            foundEmpty = False

            k = 2

            Do While Not foundEmpty

                If IsEmpty(Sheets("Sayfa1").Cells(i, k)) Then

                    Sheets("Sayfa1").Cells(i, k).Value = myRows(j).Text

                    foundEmpty = True

                Else

                    k = k + 1

                End If

            Loop

        End If

    Next j

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

    baglan.FindElementById("txtSicilTCNO").Clear

Next i

baglan.Close

Set baglan = Nothing

End Sub
 
Üst