Watir:我们如何捕获通过鼠标悬停在特定项目上显示的子项目

时间:2011-04-14 12:32:48

标签: watir

我正在尝试使用以下命令在我的应用程序中使用鼠标悬停在特定项目上 {

ie.text_field(:xpath,“// a [contains(text(),'Deal')]”)。fire_event('onmouseover')

}

在项目上执行鼠标悬停时,会显示两个子项。

有没有办法通过鼠标悬停捕获作为项目一部分的子项目,我们可以通过鼠标悬停报告我们的测试通过或失败。

请建议。

其他信息:

如果我们举例,在StackOver流程页面上,如果我鼠标悬停在我的名字上,我会看到一个窗口,我看到活动,权限,注销和其他东西。这真的是我想要的。有没有办法在鼠标悬停时捕获窗口上显示的项目。

我还尝试使用以下内容捕获子项: {

text = ie.text_field(:xpath,“// a [contains(text(),'Deal')]”)。fire_event('onmouseover')

放(text.inspect)

}

执行此操作时,“text”值显示为“nil”。

2 个答案:

答案 0 :(得分:0)

没有看到你的代码,我会“检查”你要验证的元素,而when_present(text)断言它是真的

答案 1 :(得分:0)

我对这类事情的一般策略是使用IRB和IE Developer工具或Firebug的组合。

使用IRB,键入(或剪切并粘贴)watir语句以将onmouseover命令激活到页面上的正确元素。

然后让开发人员工具重新扫描DOM(你可以点击一个小的刷新图标)使用工具指向一个元素,指向onmouseover暴露的东西中的一个项目。使用其中的信息,您可以找出如何处理这些元素以从正确的div等获取文本。

如果我在这里执行的操作,当我将鼠标悬浮在我的名字上时打开的信息我可以发现它是一个类“profile-recent-summary”的表格,而且我可以看看表格的方式组成并查看例如“今天”信誉值在该行的第二个单元格中。该行中还包含文本“信誉”..所以

browser.table(:class, 'profile-recent-summary').row(:text, /reputation/).cell(:index, 2).flash

应该闪存我想要的单元格(如果使用firewatir或webdriver,索引可能是1)我可以用.text替换.flash,如果我想从该单元格获取文本(实际上是在链接中)坐在牢房里。)