当前位置:  开发笔记 > 编程语言 > 正文

从javascript onclick返回值到变量或使用onclick更改全局变量

如何解决《从javascriptonclick返回值到变量或使用onclick更改全局变量》经验,为你挑选了0个好方法。

我正在尝试获取网站上clicked元素(任何元素)的文本值,将其从javascript返回到Selenium(Python)并使用该信息将每个单击的元素放入我的日志中.甚至可以实现使用selenium和javascript?

此函数可以显示元素,但不会返回任何内容(正常的onclick行为).我知道我可以使用selenium从警报弹出窗口中读取文本,但是每次点击鼠标都会使我的浏览器闪烁.

function getEl()
{
   var ev = arguments[0] || window.event,
   origEl = ev.target || ev.srcElement;
   alert(origEL.text)
}

document.onclick = getEl;

尝试访问javascript console.log现在似乎在Selenium中不起作用,所以使用console.log不是正确的答案.

我可以通过在click事件上向localstorage写入内容然后检查python中localstorage中的值来检测何时单击某个元素.但它并不普遍.我需要找到并设置我想要观察的每个元素.

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;
   } 
}

之后,你从python selenium调用javascript

z=driver.execute_script(javascript1)
if z=="comments link was clicked":
        #do something with this information

有没有办法获取用户在浏览器中点击的对象的信息?我正在使用Selenium和Firefox.

编辑:您可以使用getEL()并在localstorage中写入每个onclick输出来获取每个单击的元素.

localStorage.setItem(origEl.text, origEl.text);

创建本地存储,然后将temp写为数组或字符串

var temp="VISITED LINKS : "
for (var i = 0; i < localStorage.length; i++){
temp +=localStorage.getItem(localStorage.key(i))+" ";}
return temp

然后你可以将整个列表返回给python.

在Selenium中阅读localStorage内容(Python2)

你能想到将点击的对象发送到python的任何其他方法吗?

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有