(Selenium) dropbutton text alma ve click sorunu

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Bir Web sitesinde dropbutton nesnesinde bulunan ders listesini almaya çalışıyorum, fakat kullandığım tüm yöntemlerde boş ekran geliyor. Aslında veriyi tanıyor fakat değişkene ya da mesaja boş veri geliyor.
Denediğim bir kaç yöntem:
PHP:
For Each ders In crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").FindElementsByTag("option")
MsgBox ders.Text
Next
PHP:
MsgBox crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").AsSelect.Options(2).Text
PHP:
Set ts = crm.FindElementByXPath("//*[@id='Table1']").FindElementsByTag("tr")(161).FindElementsByTag("td")
metin = Split(ts(32).Text, Chr(10))
Bunun dışında bir çok yöntem denedim fakat boş veri alabiliyorum. Aslında value tanımlı kısımları alabiliyorum. Ama text kısmı gelmiyor.
Web sitesini paylaşma şansım yok. Selenium tecrübesi olan arkadaşlarımız böyle bir durumla karşılaşmışsa bilmediğim bir kodlama yöntemi olabilir mi? Alternatif kodlama belirtirseniz ben deneyip dönüş sağlarım.
Son eklediğim Tablo yöntemiyle blok metin olarak veriyi alıp split ile parçalara ayırdım. Fakat onda da istediğim ders seçimini yaptıramadım.
Veri seçmek için kullandığım, fakat başarılı olamadığım kod:
Hata vermiyor, ama veriyi de seçmiyor.
PHP:
crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").AsSelect.SelectByIndex (1)
PHP:
</select>
                                                            </TD>
                                                        <TD width="10"></TD>
                                                    </TR>
                                                    <TR>
                                                        <TD width="10"></TD>
                                                        <TD class="frmIc"><STRONG>Seçmeli Dersler</STRONG></TD>
                                                        <TD width="1">:</TD>
                                                        <TD colSpan="5">
                                                            <select name="ddlSecmeliDers" id="ddlSecmeliDers" class="frmInput" style="width:100%;">
        <option value="-1"></option>
        <option value="29456@1">SE&#199;MELİ ADABI MUAŞERET (1 Saat)</option>
        <option value="21440@1">SE&#199;MELİ ASTRONOMİ VE UZAY BİLİMLERİ (1 Saat)</option>
        <option value="21055@4">SE&#199;MELİ BİYOLOJİ (4 Saat)</option>
        <option value="21035@2">SE&#199;MELİ COĞRAFYA (2 Saat)</option>
        <option value="21035@4">SE&#199;MELİ COĞRAFYA (4 Saat)</option>
        <option value="21965@4">SE&#199;MELİ &#199;AĞDAŞ T&#220;RK VE D&#220;NYA TARİHİ (4 Saat)</option>
        <option value="21045@4">SE&#199;MELİ FİZİK (4 Saat)</option>
        <option value="23320@2">SE&#199;MELİ İKİNCİ YABANCI DİL (2 Saat)</option>
        <option value="21050@4">SE&#199;MELİ KİMYA (4 Saat)</option>
        <option value="21040@6">SE&#199;MELİ MATEMATİK (6 Saat)</option>
        <option value="29454@2">SE&#199;MELİ PROJE TASARIMI VE UYGULAMALARI (2 Saat)</option>
        <option value="24650@2">SE&#199;MELİ PSİKOLOJİ (2 Saat)</option>
        <option value="25120@2">SE&#199;MELİ SOSYOLOJİ (2 Saat)</option>
        <option value="29458@1">SE&#199;MELİ SPOR EĞİTİMİ (1 Saat)</option>
        <option value="29458@2">SE&#199;MELİ SPOR EĞİTİMİ (2 Saat)</option>
        <option value="25480@1">SE&#199;MELİ TEMEL DİNİ BİLGİLER (1 Saat)</option>
        <option value="26680@2">SE&#199;MELİ TEMEL MATEMATİK (2 Saat)</option>
        <option value="26578@3">SE&#199;MELİ T&#220;RK DİLİ VE EDEBİYATI (3 Saat)</option>
        <option value="29463@1">SE&#199;MELİ T&#220;RK D&#220;Ş&#220;NCE TARİHİ (1 Saat)</option>
        <option value="27890@4">SE&#199;MELİ T&#220;RK K&#220;LT&#220;R VE MEDENİYET TARİHİ (4 Saat)</option>
        <option value="29457@1">SE&#199;MELİ T&#220;RK SOSYAL HAYATINDA AİLE (1 Saat)</option>
        <option value="21070@12">SE&#199;MELİ YABANCI DİL (12 Saat)</option>
        <option value="21070@2">SE&#199;MELİ YABANCI DİL (2 Saat)</option>

    </select>
                                                            </TD>
 
Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Attribute kullanarak textleri alabildim. MsgBox crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").FindElementsByTag("option")(3).Attribute("text") Ancak listeden seçim henüz yapamıyorum.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Dolaylı bir yöntem kullanarak listeden seçim yapmayı başardım. Elementleri kullanarak doğrudan seçim yapmak mümkün olmadı. Mutlaka bir yolu vardır, ama şimdilik bulamadım.
1. Aşama: Seçmek istediğim verinin adını değişkene aldım.
2. Aşama: Tablo yöntemini kullanarak elementin satırını bulup nesneyi clickledim. (id ya da name kullanarak clicklemeyi başaramadım.)
3. Aşama: Sendkeys yöntemiyle, değişkene atadığım veriyi açılan nesneye aktardım.
4. Aşama: Sendkeys yöntemiyle enter yaptım ve veriyi nesnede seçili hale getirdim.
Böyle bir sorunla karşılaşan olursa bu yöntemi kullanarak çözüm üretebilir.
Farklı bir yol bilen arkadaşlarımızın fikirlerini bilmek isteriz.
PHP:
ders = crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").FindElementsByTag("option")(7).Attribute("text")
crm.FindElementByXPath("//*[@id='Table1']").FindElementsByTag("tr")(161).FindElementsByTag("td")(32).Click
crm.ActiveElement.SendKeys ders
crm.SendKeys (keys.Return)
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Doğru anladı isem şöyle mi olmalı.

Kod:
Sub TestSeleniumParsing()
Set crm = CreateObject("Selenium.ChromeDriver")
crm.Get "C:\Users\xx\Desktop\export.html" 'GET LOCAL WEBPAGE
For i = 1 To 20
ders = crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").FindElementsByTag("option")(i).Attribute("text")
'crm.FindElementByXPath("//*[@id='Table1']").FindElementsByTag("tr")(161).FindElementsByTag("td")(32).Click
Range("A" & i).Value = ders

Next

crm.FindElementByXPath("//*[@id='ddlSecmeliDers']").FindElementsByTag("option")(8).Click
MsgBox ("")
End Sub
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Maalesef, teorik olarak olması gerekiyor gibi görünüyor, fakat olmuyor. Bu ve benzeri yöntemleri denedim, fakat kesinlikle işlem yapmıyor.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Böyle deneyin.

With crm
.AddArgument "--headless" '
.get "www.dddd.com"
End With
 
Üst