2015-04-23 32 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 –