尝试与某些项目交互时出现以下错误:
Element cannot be scrolled into view:javascript:void(0); (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
)
即使元素在浏览器中并且是可见的,在 AJAX 调用之后与模态(Bootstrap)交互时也会出现这种情况。
我发现的一种解决方法是我再次手动转到该页面(这并没有弄乱测试场景)。
有没有更好的方法来解决此类错误?
尝试与某些项目交互时出现以下错误:
Element cannot be scrolled into view:javascript:void(0); (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
)
即使元素在浏览器中并且是可见的,在 AJAX 调用之后与模态(Bootstrap)交互时也会出现这种情况。
我发现的一种解决方法是我再次手动转到该页面(这并没有弄乱测试场景)。
有没有更好的方法来解决此类错误?
测试 ajax 很棘手。那是因为它是异步的;)
所以您必须等待某些对象出现在您的页面上。
然后根据你的框架,一些过渡或动画已经完成,你也必须等待它们。
您究竟要等待什么,取决于您的应用程序和您使用的 JS 框架。它可以是一个 css 类、一个 id 或其他东西。
例如,使用 jQuery mobile,您必须等待 css 类ui-mobile-viewport-transitioning
被删除,然后您的转换完成,您可以继续测试。
这是等待的Java代码示例:
webdriverWaiter.waitUntil(ExpectedConditions.invisibilityOfElementLocated(By.cssClass("ui-mobile-viewport-transitioning")));
希望有帮助