我正在编写自动化代码,点击Chrome浏览器中打开的网页上的按钮。事实证明,该按钮可以快速加载到DOM上,但在几毫秒内无法点击。在禁用时,它甚至没有被GUI标记为禁用。因此,我的自动化代码立即找到按钮&点击它,但没有任何反应。
一个原因可能是有一个名为"禁用的属性"在禁用时间内的按钮代码中。我怎么知道确实如此?
还有其他方法暂时禁用按钮/元素吗?如果是,那么请告诉我哪些方法以及如何检查使用了哪种方法?
编辑 - 按照rorys的建议,我在页面加载时添加了打印元素html的代码。 html中没有禁用属性。我错过了什么吗?
答案 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秒。
这个答案可能已经过了问题发布的时间,但希望它有所帮助。