我们的想法是通过JavaScript获取用户在Firefox浏览器中点击的位置。 从命名问题开始,以下 JavaScript 代码几乎可以执行此操作:
var DocElements = document.getElementsByTagName('*');for(var i = 0; i < DocElements.length; i++){DocElements[i].onclick = function clicked(MyElement){var target = (MyElement.target) ? MyElement.target : MyElement.srcElement;var e = document.createElement('a'); e.setAttribute('id','myUniqueID'); e.setAttribute('value', this); target.appendChild(e);};}
此脚本插入ID为#34; myUniqueID&#34;在任何单击的元素中,脚本可以通过执行以下 python 代码来检索单击的文档:
resultss=browser.driver.find_element_by_id("myUniqueID") #This uses selenium driver engine.
resultss.find_element_by_xpath("..") #This gets the parent node of selected one
JS代码旨在通过将自己附加到html代码中的所有项目来选择点击网站上的任何元素:
document.getElementsByTagName('*')
但是这个脚本失败了,因为它无法选择所有元素。例如,如果您点击月份/性别表单in google signup page,然后选择一个月,它将选择代表所选月份的元素,但不会检测the form上的第一次点击。因此,getElementsByTagName(&#39; *&#39;)不会挑选网站中的所有元素。
如何附加Javascript来运行 ALL 文档中的元素,没有例外?
答案 0 :(得分:0)
我聘请了一名自由撰稿人来完成剧本。我非常接近,但由于我是Javascript中的新手,所以我花了很长时间才弄明白。我需要使用'onmousedown'代替'onclick'作为事件。生成的脚本如下:
var DocElements = document.getElementsByTagName('*');for(var i = 0; i < DocElements.length; i++){DocElements[i].onmousedown = function clicked(MyElement){var target = (MyElement.target) ? MyElement.target : MyElement.srcElement;var e = document.createElement('a'); e.setAttribute('id','myUniqueID'); e.setAttribute('value', this); target.appendChild(e);};}
我希望将来对其他人有用。