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

时间:2017-03-25 02:12:03

标签: javascript html css

我正在编写自动化代码,点击Chrome浏览器中打开的网页上的按钮。事实证明,该按钮可以快速加载到DOM上,但在几毫秒内无法点击。在禁用时,它甚至没有被GUI标记为禁用。因此,我的自动化代码立即找到按钮&点击它,但没有任何反应。

一个原因可能是有一个名为"禁用的属性"在禁用时间内的按钮代码中。我怎么知道确实如此?

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

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

2 个答案:

答案 0 :(得分:1)

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

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

暂时可能存在已禁用的属性,您可以轻松地在自动化代码中进行测试;即使它是console.log(element);之类的东西来查看控制台中元素的HTML。

答案 1 :(得分:0)

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和条件elementToBeClickable推迟执行下一个代码,如上所示,为30秒。

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