Web sitesindeki tıklatılan öğenin (herhangi bir öğenin) metin değerini almayı denerim, javascript'ten Selenium'a (Python) döndürürüm ve bu bilgileri kullanmak için kullan günlüğümdeki her tıklanan öğe. Bu selenyum ve javascript kullanarak elde etmek mümkün mü?javascript onclick öğesinden değişkene dön veya onclick ile global değişkeni değiştir
Bu işlev öğeyi görüntüleyebilir, ancak hiçbir şey döndürmez (normal onclick davranışı). Selenium kullanarak uyarı pop-up'larından metin okuyabileceğimi biliyorum, ancak tarayıcım her fare tıklamasıyla yanıp sönecektir. Şu anda Selenyum çalışmak görünmüyor JavaScript console.log erişmeye çalışıyor
function getEl()
{
var ev = arguments[0] || window.event,
origEl = ev.target || ev.srcElement;
alert(origEL.text)
}
document.onclick = getEl;
böylece console.log kullanarak doğru cevap değildir.
Belirli bir öğenin ne zaman tıklandığında tıklama etkinliğinde yer alan öğeye bir şeyler yazarak ve ardından python'da yer alan yerel değerdeki değeri kontrol ederek algılanabilir. Ama bu evrensel değil. Gözlemlemek istediğim her elemanı bulmalı ve ayarlamalıyım.
function find_element()
{
aTags = document.getElementsByTagName("a");
searchText = "comments";
for (var i = 0; i < aTags.length; i++)
{
if (aTags[i].textContent == searchText)
{
found = aTags[i];
return found;
}
}
}
found=find_element();
function saveEvent()
{
localStorage.setItem("ZAD1.1", "1");
}
if(found)
{
found.addEventListener("click",saveEvent,false);
var x=localStorage.getItem("ZAD1.1");
if (x=="1")
{
count="comments link was clicked";
return count;
}
}
piton selenyum
z=driver.execute_script(javascript1)
if z=="comments link was clicked":
#do something with this information
o sen çağırmak javascript sonra tarayıcıda kullanıcı tarafından tıklandığında nesneler hakkında bilgi almak için herhangi bir yolu var mı? Selenyum'u Firefox ile kullanıyorum.
EDIT: Getirilen her öğeyi getEL() kullanarak ve localstorage öğesinde her onclick çıktısını yazarak alabilirsiniz.
localStorage.setItem(origEl.text, origEl.text);
yerel depolama oluşturun ve sonra
var temp="VISITED LINKS : "
for (var i = 0; i < localStorage.length; i++){
temp +=localStorage.getItem(localStorage.key(i))+" ";}
return temp
Sonra piton için tüm listeyi iade edebilirsiniz dizi veya dize olarak temp yazın.
Eğer python için tıklanan nesneleri göndermek için başka bir şekilde düşünebiliyor musunuz?
Neden selenyum göndermek istiyor? Neden bu bilgiyi sadece bir python http sunucusuna göndermeyeceksin? –
Çünkü bu Selenium Script'i yerel olarak çalışan sınavımın bir parçası olarak kullanmak istiyorum. Şu anki komut dosyası firefox profilini başlatıyor ve doğru linke tıklayıp tıklamadığınızı kontrol ediyor. Bunu yaptığınızda size bir nokta verir. Selenium'un kullanıcı girişini izlemek için tasarlanmadığını biliyorum, ama bence bu yapılabilir. Javascript'in izlenmesi, ziyaret edilen her web sayfasında başlar. Kullanıcının web sayfasını tam olarak tıklattığını izlemek için açık kaynaklı bir araç bilmiyorum. Benim durumumda POSTS ve GETS yeterli değil. –
Eylemde nasıl göründüğü budur. [link] (http://s7.postimg.org/yox2swzy2/click.jpg) –