2012-07-19 96 views
0

所以我试图点击一个忘记的密码链接(这会导致模式弹出)并确认弹出链接,以便我可以对发出的电子邮件执行测试。如何处理黄瓜+水豚+硒中的Modals

我的代码如下所示:

page.find(:css, '#launch-modal-link').click # code fails on this line, after clicking the link 

    page.driver.browser.switch_to.alert.accept # does not get to this line of code. 

我在做什么错恰好试图单击模式弹出“确定”按钮时?

我是否需要添加一个try catch块(或不管它被称为红宝石)周围的链接

+0

似乎与本文 - http://opensourcetester.co.uk/2012/03/23/webdriver-modaldialog/ – Jason 2012-07-19 20:33:42

+0

“代码失败这一行“ - 你能添加你看到的错误信息吗? – 2012-07-20 10:29:04

+0

@JonM - 我得到的错误消息说“有一个未处理的警报” – Jason 2012-08-01 20:39:57

回答

3

解决了这个问题 - 找到了答案其他地方。尽管它是一个黑客,并不是通过黄瓜直接完成的。

page.evaluate_script('window.confirm = function() { return true; }') 

这工作,因为它在写入确认()总是返回true和确认功能,似乎是一个常见的JavaScript函数返回按钮,在对话框中点击。这可能是错误的。 (阅读javascript功能正在执行的onclick。可能不总是工作)