2015-03-25 59 views
-1

我正在使用watir 2.0.1,當前如果腳本在url上運行,請在ABC瀏覽器的一個選項卡中輸入ABC.com,如果我打開相同的url ABC.com在瀏覽器的其他選項卡或新實例中,則執行將切換到打開的新選項卡。 因此我不能夠在相同的URL如何使用WATIR在同一個URL上同時執行兩個或多個執行腳本

這裏執行多個腳本/執行是Script1.rb在PROJECT1代碼,

require 'watir' 
browser = Watir::Browser.new 
browser.goto 'https://example.com' 
browser = Watir::Browser.attach(:title, /ABC Application/) 
browser.button(:text,"Register").click 
sleep 2 
browser.text_field(:id,"First_Name").set "Script_1_FirstName" 
sleep 2 
browser.text_field(:id,"Last_Name").set "Script_1_LastName" 

等等...

雖然Script1在瀏覽器實例1中同時填寫ABC應用程序的註冊表單(在Script1輸入名字後說,我將觸發Script2.rb以進行註冊表單頁面的一些基本驗證。)

這裏是SCRIPT2。 RB Project2中,

require 'watir' 
browser1 = Watir::Browser.new 
browser1.goto 'https://example.com' 
browser1 = Watir::Browser.attach(:title, /ABC Application/) 

//At this time Script2 will execute properly in IE Instance2 as there is 
//no Register button at IE instance1(Because Script1 is already on 
//Register form page) 

browser1.button(:text,"Register").click 

//The movement Register form opens in IE instance2,Script1 finds same page 
//elements on IE instance2 so currently Script1 is automatically start its 
//execution on IE instance2 which will affect Script2 Execution.  

if(browser1.text_field(:id,"First_Name").text.include("") 
puts "First name field is blank by default" 
else 
raise "First name field is not blank by default" 

if(browser1.text_field(:id,"Last_Name").text.include("") 
puts "Last name field is blank by default" 
else 
raise "Last name field is not blank by default" 

回答

0

問題是與每個腳本連接到一個瀏覽器,其可以或可以不被一個早先在腳本打開。

行:

browser = Watir::Browser.attach(:title, /ABC Application/) 

的話語,並連接到第一瀏覽器,其中包括「ABC應用程序」的標題。如果所有的腳本都在尋找這個標題,他們都將被附加到相同的瀏覽器。

解決方案是使用由腳本打開的瀏覽器。這應該只需要刪除這個Watir::Browser.attach行。然後browser變量將繼續指向它在browser = Watir::Browser.new中打開的瀏覽器。

+0

它不與相同的變量,我使用不同的項目來運行這些腳本。 – user3305286 2015-03-25 14:13:55

+0

對不起,我想我誤解你的代碼示例。爲什麼要創建一個新的瀏覽器實例,「Watir :: Browser.new」,導航到一個頁面,然後嘗試附加到一個瀏覽器實例'Watir :: Browser.attach(:title,/ ABC Application /)'? – 2015-03-25 15:15:16

+0

爲了使軟件測試目的的任何Web應用程序自動化,我使用上面的代碼創建一個新的瀏覽器實例,然後附加Web應用程序,然後使用此對象來自動化無線電,文本字段等網頁元素。 例如下面在SCRIPT1代碼爲點擊具有絲毫不差作爲ABC應用的web應用程序的單選按鈕 Script1.rb 需要「watir'browser =的Watir :: Browser.new browser.goto的」 https:// example.com' browser = Watir :: Browser.attach(:title,/ ABC Application /) browser.radio(:id,「Test」)。點擊 – user3305286 2015-03-25 16:22:33