繁体   English   中英

如何找出为什么短暂禁用某个元素?

[英]How to find out why an element is disabled briefly?

我正在编写自动化代码,以单击在chrome浏览器中打开的网页上的按钮。 事实证明,该按钮已快速加载到DOM上,但在数毫秒内不可单击。 在禁用时间内,它甚至没有被GUI标记为禁用。 因此,我的自动化代码立即找到并单击了按钮,但是什么也没有发生。

一个原因可能是在禁用时间中,按钮代码中有一个称为“禁用”的属性。 我如何发现确实如此?

还有其他方法可以暂时禁用按钮/元素吗? 如果是,那么请告诉我哪些方法以及如何检查使用的方法?

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

如果不查看代码或预览问题本身,很难说。

这可能是按钮被越来越添加到DOM,但点击事件处理程序不会立即应用,这将使它看起来禁用, 应用前。

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

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = new WebDriverWait(driver, 30)
      .until(ExpectedConditions.elementToBeClickable(By.xpath(xpathString)));
js.executeScript("arguments[0].click()", topic);

JavascriptExecutor执行比仅使用element.click()还要好,使用WebDriverWait和condition elementToBeClickable将下一个代码的执行延迟30秒,如上所示。

这个答案可能比问题发布的时间还早,但希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM