2011-02-15 31 views
1

有人能告诉我如何用Watir点击由javascript事件触发的元素。如何使用带有Javascript触发元素的Watir

例如,在http://www.kissmetrics.com/上的主页上,如果我点击示例图片上的“了解更多”按钮,将弹出一个灯箱。然后我可以点击'开始'按钮在注册页面上移动。

如何在Watir中模拟物体? IE浏览器。如何先点击'了解详情',然后点击'开始使用'按钮?

感谢您的任何帮助。

+0

您想要点击哪个“开始”按钮,页面中间是绿色的,下面是右侧的黑色,以及页面页脚中的“开始”链接。它们都会导致相同的地方,但是如果您想单击特定的地方,我们需要知道它是哪一个,以便为您提供示例代码。 – 2011-03-10 18:25:22

回答

0

我在IRB测试这和它的作品:

browser.span(:text, 'Learn more').click 
browser.span(:text, 'Get Started').click 

只要它在DOM,你可以得到它。

2

实际上,当你点击的时候会触发JavaScript事件,但它们可能不是那些特定元素正在寻找的东西。有时一个元素必须首先进入一个状态,你可以通过类似于鼠标悬停的方式点击它。

所以诀窍通常是找出需要触发的事件(请参阅Zeljko的回答),然后使用.fireevent方法根据需要的顺序触发需要查看它们的元素。

很多时候,你几乎不得不通过查看html中的哪些元素正在寻找什么事件来逆向工程开发人员正在做的事情。

在这种特殊情况下,如果您的目的是点击BLUE learn more按钮,那么该按钮似乎位于某种屏幕截图的顶部,然后检查HTML或DOM显示它具有方便的ID值,使用。你也可以看到它是'有线'来响应onclick事件,更重要的是它打开一个新的模式窗口(在这种情况下,看起来像一个弹出窗口的div)onclick="new Modal('learn_more_content', {top: 110, modalClass: 'borderless'}).show()。所以下面的代码应该工作启动模式

browser.button(:id, "learn_more_btn").click 

然后点击绿色的“开始”按钮(其中有几个,所以我们需要一种方法来指明是哪一个)

browser.p(:class, "cta").button(:class, "green button has_arrow").click 
相关问题