0

在 Xebium 测试期间尝试输入输入字段时收到以下错误:

Element belongs to a different frme than the current one - switch to its containing frame to use it

所以我尝试使用 selectFrame 命令:

| do | selectFrame | on | id=iframe0 |

我收到错误:

Unable to locate frame: id=iframe0

我的测试在 Selenium IDE 中运行(有和没有 selectFrame 命令),没有错误。我尝试使用不同的定位器,但 Xebium 没有任何改进。难道我做错了什么?这是Xebium的问题吗?我可以使用什么其他方法来获取正确的帧以输入我的数据?

4

2 回答 2

0

我有一个类似的问题,但发现它在使用 Selenium RC 而不是 WebDriver 运行测试时有效。

我认为问题不在于 Xebium 本身。使用 Selenium->WebDriver 兼容模式时,selectFrame() 方法的问题更大。

无论如何,如果您启动自己的 WebDriver-Server 实例(其中包含 Selenium RC)并将 Xebium 测试设置为指向它,则使用 iFrames 应该可以工作。

于 2012-06-14T21:22:02.287 回答
0

我有一个类似的问题。

我第一次在我的测试中使用 selectFrame 工作,但是当我需要切换到另一个框架时它失败了。
我已经在 Selenium IDE 中记录了我的测试,并且在 IDE 中播放效果很好,但是使用 Xebium 格式化程序然后从 Xebium 播放相同的测试失败了。

Xebium 格式化程序给了我这个:

| do | selectFrame | on | tabs |
| ensure | do | click | on | link=Form |
| do | selectFrame | on | relative=up |
| do | selectFrame | on | menu |

所以框架“选项卡”上的 selectFrame 工作,但“菜单”上的 selectFrame 没有。

如您所见,介于 2 之间的是相对 = 上的 selectFrame。这一行实际上是我的测试在“捕获的输出”页面中出现异常的地方,并且在测试页面本身中似乎跳过了 2 个 selectFrame 命令。

似乎在选择另一个框架之前,webdriver 需要回到默认框架,这就是 relative=up 存在的原因。

然后我将命令更改为:

| do | selectFrame | on | relative=top |

一切都像一个魅力。似乎 relative=up 工作不正确,但 relative=top 确实有效(无论如何对我来说)。希望这也适合你。

于 2013-08-16T13:29:53.580 回答