Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找出元素被短暂禁用的原因?_Javascript_Html_Css - Fatal编程技术网

Javascript 如何找出元素被短暂禁用的原因?

Javascript 如何找出元素被短暂禁用的原因?,javascript,html,css,Javascript,Html,Css,我正在编写自动化代码,以便在chrome浏览器中打开的网页上单击按钮。结果表明,按钮很快加载到DOM中,但在几毫秒内不可单击。在禁用期间,它甚至没有被GUI标记为禁用。因此,我的自动化代码立即找到按钮并单击它,但什么也没发生 一个原因可能是,在禁用时间内,按钮代码中有一个名为“disabled”的属性。我怎样才能发现事实确实如此 是否有其他方法暂时禁用按钮/元素?如果是,请告诉我哪些方法以及如何检查使用了哪些方法 编辑-根据rorys的建议,我添加了代码以在页面加载时打印元素html。html中

我正在编写自动化代码,以便在chrome浏览器中打开的网页上单击按钮。结果表明,按钮很快加载到DOM中,但在几毫秒内不可单击。在禁用期间,它甚至没有被GUI标记为禁用。因此,我的自动化代码立即找到按钮并单击它,但什么也没发生

一个原因可能是,在禁用时间内,按钮代码中有一个名为“disabled”的属性。我怎样才能发现事实确实如此

是否有其他方法暂时禁用按钮/元素?如果是,请告诉我哪些方法以及如何检查使用了哪些方法


编辑-根据rorys的建议,我添加了代码以在页面加载时打印元素html。html中没有禁用的属性。我遗漏了什么吗?

如果没有看到代码或预览问题本身,很难说

可能是按钮被添加到DOM中,但是单击事件处理程序不会立即应用,这会使它看起来被禁用,直到它们被应用为止

可能有一个暂时禁用的属性,您可以在自动化代码中轻松地测试它;即使它类似于
console.log(元素)
在控制台中查看元素的HTML

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = new WebDriverWait(driver, 30)
      .until(ExpectedConditions.elementToBeClickable(By.xpath(xpathString)));
js.executeScript("arguments[0].click()", topic);
JavascriptExecutor
比简单地使用
元素执行得更好。单击()
此外,使用
WebDriverWait
和condition
elementtobelickable
将下一个代码的执行延迟30秒,如上所示


这个答案可能已经过了问题发布的时间,但希望它能有所帮助。

是不是在没有onclick事件的情况下添加了按钮,然后不久又添加了此事件?在这种情况下,尽管按钮没有被禁用,但出于这个原因,该按钮可能不会执行任何操作。Rory,感谢您的建议。我用自动化脚本中html元素代码的输出更新了这个问题。另外,我如何检查单击处理程序何时被应用?为什么说JavascriptExecutor比element.click更好?