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 ?
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);
ş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);