javascript:如何检查元素是不是可点击

Posted

技术标签:

【中文标题】javascript:如何检查元素是不是可点击【英文标题】:javascript: How to check if an element is clickable or notjavascript:如何检查元素是否可点击 【发布时间】:2011-08-03 16:08:09 【问题描述】:

我的幼稚做法如下:

function isClickable(id)     
     elem = document.getElementById(id);
     if (elem.nodeName.toLowerCase() == 'a' || typeof(elem.click) != 'undefined')
        return true;     
     else
        return false;     
     
    

有什么更好的办法吗?

【问题讨论】:

我的意思是,从技术上讲,一切都是可点击的...... 你是对的。如果我改写成:“如果我点击它,会发生什么事情吗?” 你想通过确定这个来完成什么? 实际上 Firefox 需要一个讨厌的脚本才能以编程方式单击一些 html 元素 我的目标是测试 - 在我执行一些操作后,元素是否变得可点击(停止可点击) 【参考方案1】:

对于大多数元素...

if(e.getAttribute('onclick')!=null)

 // clickable


对于锚点...

if(e.getAttribute('href')!=null)

 // clickable


然后您的表单按钮需要更多代码,最后您需要处理点击事件冒泡,因此涵盖所有元素的完美解决方案将是一场噩梦!

但是,如果您只想为容器和锚点提供一些简单的东西,那么我们可以将上面的逻辑与...结合起来......

if((e.getAttribute('onclick')!=null)||(e.getAttribute('href')!=null))

 // clickable


反过来……

if((e.getAttribute('onclick')===null)&&(e.getAttribute('href')===null))

 // not clickable


【讨论】:

这很好用,但最重要的是我也添加了这个检查 if(element.getAttribute('role') === "button")

以上是关于javascript:如何检查元素是不是可点击的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium WebDriver 检查元素是不是可点击

Selenium Webdriver:如何检查特定屏幕上是不是存在 ui 元素,无论它当前是不是可见/可点击

如何使用 selenium webdriver 检查按钮是不是可点击

如何检查用户是不是可以看到并单击元素?

检查 Selenium Java 中的元素是不是可点击

检查元素在硒中是不是可点击