无法使用Watir触发Java事件以及如何查找没有任何属性的元素

时间:2011-12-29 12:26:09

标签: ruby javascript-events watir watir-webdriver

我是watir和ruby的新手。我有2个问题,我无法得到解决方案。我现在用谷歌搜索超过30小时,仍然没有得到解决方案。任何紧急援助都会有很大的帮助。

问题1:如何解雇javascript事件。

html如下所述。

img onclick="javascript:previousScreen(1);" alt="Back" src="/WSWeb/images/someimage.gif"/

我已尝试过大多数解决方案,例如谷歌上的fireevent e.t.c。请给我写一段适用于上述场景的代码。

问题2:如何点击或验证下面提到的html元素是否存在。

场景1:这是html文本

input onclick="history.go(-1)" type="button" value="Back"/

情景2:此{ - 1}}下的>文本 - 登录ID。这就是现有的一切。这是一个表格中的单元格。请给我写两个场景的代码。

提前致谢。

2 个答案:

答案 0 :(得分:3)

好吧,如果你有两个问题,请发两个问题。 :)

如果网页是公开的,请发布指向该网页的链接,这是我们提供帮助的最佳方式。

关于javascript事件,请参阅How to find out which JavaScript events fired?

您可以点击此按钮:

browser.button(:value => "Back").click

对于center元素,您必须提供更多HTML。我不确定你需要做什么。

答案 1 :(得分:0)

首先,关于选择没有属性的元素,请看一下这个问题的答案(全部三个):Accessing an element with no attributes in Watir

关于您的具体示例/问题:如果您参考watir wiki的methods supported for selecting elements列表,您将看到src可以选择图像元素(img标签)。所以,首先,你要做到这一点

browser.image(:src => '/WSWeb/images/someimage.gif').click

如果由于某种原因,click方法不起作用,那么您可以尝试直接触发onclick事件

browser.image(:src => "/WSWeb/images/someimage.gif").fire_event('onclick')

对于第二部分,您还会注意到该值可用于选择“button”元素,其中包含type = button的输入标记。因此,看看按钮是否在那里

browser.button(:value => 'Back').exists? #(will return true or false)

对于第二种情况,Watir目前不支持选择大多数格式化标签(如center),因此您需要查看包含该文本的元素。你说它是一个表格单元格(td)在一个框架内(我不知道如何识别,因为你没有提供html),如果是这种情况,那我就理解它了

browser.frame(:how => 'what').cell(:text => 'Login Id').exists?

应该有用(假设文本实际上是'登录ID'而不是'登录ID')