6

我正在为 Web 应用程序编写测试,一切顺利,直到我不得不从菜单中选择一个选项,并且该选项在悬停或单击时会显示一个下拉列表。当我从下拉列表中单击一个选项时,我收到以下错误:

MoveTargetOutOfBoundsException: Element cannot be scrolled into view

有谁知道这个错误是什么以及我应该在我的代码中寻找什么?

Selenium 版本 2.25.0,java 版本 1.6.0_31

我一直在检查旧版本中有关此问题的一些 selenium 和 google 组 https://groups.google.com/forum/?fromgroups=#!topic/selenium-users/EuZ7a6_lB9Q http://code.google.com/ p/selenium/issues/detail?id=3075 http://code.google.com/p/selenium/issues/detail?id=4102

最近的讨论

这是 Selenium 2.25.0 的一个已知问题还是有办法解决它?我最近升级到 Firefox 15.0 :|

注意:我找到了一个临时解决方案,直到有人神奇地解决了这个问题......因为我找不到问题出在哪里......我在它崩溃之前运行代码,我让它休眠 10 秒,我手动单击下拉列表中的菜单和选项,将显示我想要的窗口,并且代码从该点继续执行操作。它现在有效...我希望这将得到解决,因为我不敢相信我可以在 Selenium IDE 中运行脚本,但我不能在 WebDriver 中运行我的 java 代码...这太疯狂了:|

4

2 回答 2

3

我猜您正在尝试从下拉列表中单击一个元素。您应该记住,Selenium 可以帮助您复制精确的人类行为。所以如果代码因为元素不可见而失败,很可能是因为元素不可见。

为了使它工作,您可能希望在失败的代码位之前在菜单上放置一个单击命令。(复制睡眠 10 秒手动单击您正在使用的菜单按钮方法)

再一次,如果您可以向我们展示您的代码以及菜单部分的 HTML 片段,我们可以提供准确的解决方案。

于 2012-08-31T14:59:08.683 回答
0

也许您在打开选择框时打开了新的弹出窗口。这可能会帮助您:

WebDriver.FindElement(By.Id("someInputBox")).SendKeys("hello");
(IJavaScriptExecutor)WebDriver).ExecuteScript("document.getElementById('windowOpener_Button').click();");
WebDriver.SwitchTo().Window("newDisplayedWindowPopupName"); // continue to test
于 2018-10-31T13:03:46.317 回答