• 30-01-2021, 12:47:44
    #1
    Arkadaşlar selam, Bir sorun ile karşılaştım. Nasıl bir sorun deseniz selenium ile açtığım web sitesinde nereye tıkladığımı öğrenmek istiyorum. Mesela ben mause ile logoya tıkladım bunu programdan hangi komut ile xpatch yolunu öğretenebilirim ? Yazılım c# ile hazırlanmaktadır.
  • 30-01-2021, 12:54:06
    #2
    Selenium, çalışma mantığında zaten herhangi bir aksiyonu gerçekleştirmeden öncr ona elementi sizin anlatmanız gerekiyor dolayısıyla zaten bunu biliyor olmalıyız , fakat eğer ilgili elemente ait herhangi bir attribute değerine ulaşmak istiyorsanız bu durumda getAttribute() metodunu kullanabilirsiniz .
  • 30-01-2021, 12:58:06
    #3
    bycyberchild adlı üyeden alıntı: mesajı görüntüle
    Selenium, çalışma mantığında zaten herhangi bir aksiyonu gerçekleştirmeden öncr ona elementi sizin anlatmanız gerekiyor dolayısıyla zaten bunu biliyor olmalıyız , fakat eğer ilgili elemente ait herhangi bir attribute değerine ulaşmak istiyorsanız bu durumda getAttribute() metodunu kullanabilirsiniz .
    hocam cevabınız için teşekkür ederim. ile tıkladığım elementin xpatch yolunu öğrenmek istiyorum sadece mesela logoya tıkladım bana xpatch yolunu verecek ben bunu sayfayı incele yolu ile alabiliyorum zaten ama program üzerinden almak istedim nasıl yapabilirim bunu herhangi bir yere tıklamış olabilirim mesela logo değilde anasayfaya tıkladım bunun xpatch yolunu öğrenmek istiyorum
  • 30-01-2021, 13:23:37
    #4
    Tam olarak , bilinen bir elementin xpath ini çalışma zamanında görmek istiyoruz anladığım kadarı ile bunu JS ile parent,child element mantığı ile çıkarabiliriz sanırım hazır bir kod bloğu vardı bende bunun için bulur isem ileteceğim buradan
  • 30-01-2021, 13:34:53
    #5
    bycyberchild adlı üyeden alıntı: mesajı görüntüle
    Tam olarak , bilinen bir elementin xpath ini çalışma zamanında görmek istiyoruz anladığım kadarı ile bunu JS ile parent,child element mantığı ile çıkarabiliriz sanırım hazır bir kod bloğu vardı bende bunun için bulur isem ileteceğim buradan
    Tam olarak bilinmeyen bir elementi mause tıklayınca xpatch olarak konumunu öğrenmek istiyorum sadece bu hocam yardımınız için teşekkür ederim beklemedeyim.
  • 30-01-2021, 13:43:11
    #6
    Javascript ile yaparak xpath değil de direkt olarak elementi geri döndürebilirsiniz. Bu sayede xpath ile uğraşmadan direkt elementi almış olur istediğiniz şekilde kullanabilirsiniz.
    Yani IWebElement element = driver.FindElement... yerine IWebElement element = JS'den gelen. şeklinde kullanabilirsiniz, aynı şey olur mantıken

    JS kodu:
    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement, text = target.textContent || target.innerText;   
    console.log(target);
        }, false);
    Burada tarayıcının konsoluna yazdırdım siz orada return target derseniz geri döner. C# kısmında da ona göre ayarlamanız gerekir. Bunu C# 'ta tek seferlik alırsınız. Sonrasında sürekli almak istediğinizde kuracağınız algoritma size kalmış. Kolay gelsin.
  • 30-01-2021, 18:36:41
    #7
    AdilcanTopuz adlı üyeden alıntı: mesajı görüntüle
    Javascript ile yaparak xpath değil de direkt olarak elementi geri döndürebilirsiniz. Bu sayede xpath ile uğraşmadan direkt elementi almış olur istediğiniz şekilde kullanabilirsiniz.
    Yani IWebElement element = driver.FindElement... yerine IWebElement element = JS'den gelen. şeklinde kullanabilirsiniz, aynı şey olur mantıken

    JS kodu:
    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement, text = target.textContent || target.innerText;  
    console.log(target);
        }, false);
    Burada tarayıcının konsoluna yazdırdım siz orada return target derseniz geri döner. C# kısmında da ona göre ayarlamanız gerekir. Bunu C# 'ta tek seferlik alırsınız. Sonrasında sürekli almak istediğinizde kuracağınız algoritma size kalmış. Kolay gelsin.
    Üstad koduna sanki şu if blogunu eklesek biraz daha iyi olur zira 2 leme oluyor
    //EBS Click Logging...
    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement,
            text = target.textContent || target.innerText;
        if (target != "") {
            console.log(target);
        }
    
    }, false);
  • 30-01-2021, 18:46:08
    #8
    windturks adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar selam, Bir sorun ile karşılaştım. Nasıl bir sorun deseniz selenium ile açtığım web sitesinde nereye tıkladığımı öğrenmek istiyorum. Mesela ben mause ile logoya tıkladım bunu programdan hangi komut ile xpatch yolunu öğretenebilirim ? Yazılım c# ile hazırlanmaktadır.
    şimdi getAttribute değerlerini döndürür şimdi senin burada yapman gereken ise console daki bu değerleri alıp xpath oluşturmaktır misal
    string xpath = //*[@class='"+consoldangelendgr+"'];

    gibi aldığın değere göre bir if yapabilirsin mesela class name,tagname vb. vb.

    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement, text = target.textContent || target.innerText;
       if(target!="")
       {
          console.log(target.getAttribute("class"));
        }
    
        }, false);
  • 31-01-2021, 01:40:05
    #9
    Arkadaşlar hepinize tek tek çok teşekkür ederim. Şimdi tek sorunum kaldı console yi okuyamıyorum c# ile null geliyor hep ama tarayıcıdan kontrol ettiğimde istediğim veriler oraya basıyor. Bunu nasıl düzeltip konsoldan verileri alabilirim ?


    AdilcanTopuz adlı üyeden alıntı: mesajı görüntüle
    Javascript ile yaparak xpath değil de direkt olarak elementi geri döndürebilirsiniz. Bu sayede xpath ile uğraşmadan direkt elementi almış olur istediğiniz şekilde kullanabilirsiniz.
    Yani IWebElement element = driver.FindElement... yerine IWebElement element = JS'den gelen. şeklinde kullanabilirsiniz, aynı şey olur mantıken

    JS kodu:
    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement, text = target.textContent || target.innerText;  
    console.log(target);
        }, false);
    Burada tarayıcının konsoluna yazdırdım siz orada return target derseniz geri döner. C# kısmında da ona göre ayarlamanız gerekir. Bunu C# 'ta tek seferlik alırsınız. Sonrasında sürekli almak istediğinizde kuracağınız algoritma size kalmış. Kolay gelsin.
    ebubekirbastama adlı üyeden alıntı: mesajı görüntüle
    Üstad koduna sanki şu if blogunu eklesek biraz daha iyi olur zira 2 leme oluyor
    //EBS Click Logging...
    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement,
            text = target.textContent || target.innerText;
        if (target != "") {
            console.log(target);
        }
    
    }, false);
    ebubekirbastama adlı üyeden alıntı: mesajı görüntüle
    şimdi getAttribute değerlerini döndürür şimdi senin burada yapman gereken ise console daki bu değerleri alıp xpath oluşturmaktır misal
    string xpath = //*[@class='"+consoldangelendgr+"'];

    gibi aldığın değere göre bir if yapabilirsin mesela class name,tagname vb. vb.

    document.addEventListener('click', function(e) {
        e = e || window.event;
        var target = e.target || e.srcElement, text = target.textContent || target.innerText;
       if(target!="")
       {
          console.log(target.getAttribute("class"));
        }
    
        }, false);