1

尝试与某些项目交互时出现以下错误:

Element cannot be scrolled into view:javascript:void(0); (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)

即使元素在浏览器中并且是可见的,在 AJAX 调用之后与模态(Bootstrap)交互时也会出现这种情况。

我发现的一种解决方法是我再次手动转到该页面(这并没有弄乱测试场景)。

有没有更好的方法来解决此类错误?

4

1 回答 1

2

测试 ajax 很棘手。那是因为它是异步的;)
所以您必须等待某些对象出现在您的页面上。
然后根据你的框架,一些过渡或动画已经完成,你也必须等待它们。

您究竟要等待什么,取决于您的应用程序和您使用的 JS 框架。它可以是一个 css 类、一个 id 或其他东西。
例如,使用 jQuery mobile,您必须等待 css 类ui-mobile-viewport-transitioning被删除,然后您的转换完成,您可以继续测试。

这是等待的Java代码示例:

webdriverWaiter.waitUntil(ExpectedConditions.invisibilityOfElementLocated(By.cssClass("ui-mobile-viewport-transitioning")));

希望有帮助

于 2013-03-05T13:36:22.647 回答