有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问:
那么,我今天就来写一篇文章,具体说说应该怎么操作。
这个方法的核心,是借助JavaScript的事件(event)来获取鼠标所在的元素。然后再把这个元素传递给Selenium。我们先来第一步,不考虑Selenium,只使用JavaScript,如何获取当前鼠标指向的元素呢?
我们首先需要知道在JavaScript中的一个事件句柄,叫做window.onmousemove。默认情况下,它的值是null:
我们可以把它的值修改成一个函数,这个函数接收一个event参数,这样当鼠标在网页上移动的时候,这个函数就会被调用。而event参数是一个对象,这个对象有两个属性.clientX和.clientY,分别表示鼠标相当于网页的横坐标和纵坐标:
function track_mouse(event){
var x = event.clientX, y = event.clientY
console.log('当前鼠标所在位置的坐标