2015-04-23 38 views
1

我在我的rails应用程序中安装了watir-webdriver,我想立即显示网站的预览,我想在同一页面上显示watir点击事件,而不是在新窗口/选项卡中,这里我想显示iframe中的实时预览索引页面上,我尝试以下操作:Watir单击iFrame内部的事件?

应用程序/模型/ preview.rb

def self.live_preview 
    browser = Watir::Browser.new :firefox, profile: 'MR' 
    browser.goto "http://example.com" 
    browser.text_field(id: 'email').set('[email protected]') 
    browser.text_field(id: 'password').set('password') 
    browser.button(name: 'commit').click 
    browser.button(name: 'learn_more').click 
    end 

应用程序/视图/ watir.rb

<%= Preview.live_preview %> 

应用程序/视图/ index.html.erb

<iframe id="preview" src="/watir"></iframe> 

当索引页被加载它打开新选项卡,然后所有的事件被执行,但我想在同一个页面

我想类似的Watir经典mentioned here在Firefox在Ubuntu

运行
+0

你可以做你手动想要的东西,通过采取浏览器到指定网页并点击东西等?如果没有,你将无法与Watir一起完成。如果页面上的代码在手动使用时打开一个新的选项卡,它将在由watir或位于webdriver之上的任何其他浏览器驱动程序驱动时执行此操作..因为这些工具的目的是作为用户会。如果你不能手动执行某些操作,那么你可以通过watir-webdriver来做到这一点,这一点值得怀疑,因为我们不能让浏览器神奇地做一些它通常不会做的事情。 –

+0

@ChuckvanderLinden是的,我可以手动执行它只是在iframe中的一些点击事件,我想在Firefox中添加现有的浏览器窗口而不是新窗口 –

回答

0

是通过以下方式,您可以点击链接的iframe

require 'watir-webdriver' 
b = Watir::Browser.new 
b.goto "index_page"  
b.frame(:id => 'top_right').link(:index => 0).click 
+0

iFrame已经存在于索引页面我想在预览中呈现watir事件'iFrame,b.goto会重定向到新标签,我不想要新窗口/标签 –

+0

首先你必须去iframe的索引页,然后你可以通过'b.frame(:id =>'top_right')'那么你可以通过'.link(:index => 0)点击它上面的任何链接.click'索引应该是合适的 –

+0

我有索引页面包含预览iFrame,我想执行watir-webdriver里面的事件预览iFrame –