2012-04-25 150 views
1

普萊舍幫助我 如何實例化Safari在硒電網與Safari瀏覽器硒電網

capabilities = new DesiredCapabilities(); 
      // Version browser 
      capabilities.setVersion(versaoBrowser); 
      capabilities.setBrowserName("safari"); 
      capabilities.setJavascriptEnabled(true); 
      // Platform test runner 
      capabilities.setPlatform(platform); 

在服務器WEEL

-browser "browserName=safari,version=5,platform=WINDOWS,javascriptEnable=true" 
+0

您使用的是哪個版本的Selenium?根據[用戶Darrell的最新評論],Safari瀏覽器無法正常工作(http://darrellgrainger.blogspot.co.uk/2011/02/using-selenium-20-with-webdriver-and.html?showComment = 1333108018252#c9157838719535505020) – shamp00 2012-04-25 13:14:54

回答

0

我相信你問的是一樣的東西這個?

selenium = new DefaultSelenium("localhost", 4444, *safari,"http://google.com.au"); 
selenium.start(); 

我一般使用WebDriver,但是我的理解是功能是當你創建一個瀏覽器的實例,而不是打開瀏覽器本身的選項。雖然我可能是錯的,因爲我對Selenium Grid沒有經驗。

編輯:Thisthis可能會有所幫助。

+0

所以我使用的硒網絡驅動程序,這種類型的實例是硒RC,有這方面的進展,我的庫更新硒2.21,現在我的代碼是好的 capabilities = DesiredCapabilities.safari(); capabilities.setBrowserName("safari"); capabilities.setJavascriptEnabled(true); capabilities.setPlatform(platform);,我有一個新問題與Safari瀏覽器的位置...
請將包含''Safari.exe''的目錄添加到您的PATH環境 變量中,或者顯式指定Safari的路徑,如下所示: * safari c:\ blah \ Safari。 exe – joaoSakai 2012-04-26 12:04:06

+0

這是因爲您必須將您的Safari驅動程序放置在您要在代碼中調用的位置(例如safari = new safariDriver(「Where is It」);)或添加fi通往您的PATH環境的路徑。如果您需要此流程的幫助,請讓我知道,我會採取屏幕截圖和類似的解釋。 – Nashibukasan 2012-04-26 23:32:03

+0

JoaoSakai,你能發佈你得到的確切的錯誤細節嗎?我認爲這可能對我們其他人有所幫助。我不記得自己看到那個錯誤。我以爲你只能指定路徑到Firefox,而不是IE和Safari ......這對我來說是新聞。 – David 2012-05-12 03:33:46

1

如果問題是關於在GRID2使用Safari的新方式,用SafariDriver,那麼這將是典型的方法,我相信(或多或少):

import org.openqa.selenium.*; 
import org.openqa.selenium.remote.*; 
import java.net.*; 

DesiredCapabilities c = new DesiredCapabilities(); 
c.setBrowserName("safari"); 
/* you can then set version & platform as well, but the minimum is just browser. Maybe for Grid2 you need the others, but for remote web driver only, you don't. 
*/ 

WebDriver d = new RemoteWebDriver(new URL("http://hubIpOrHostname:hubPort/wd/hub"),c); 

,並應工作。在服務器端,我相信你只是爲每個維基文檔的Grid2實例化(最後我檢查,現在可能不一樣):

//啓動集線器 java -jar selenium-server-standalone-2.21.0。罐子-role轂-port theHubPort

//啓動節點 Java的罐子硒 - 服務器 - 獨立-2.21.0.jar -role節點-hub HTTP: //172.22.6.198:4446/wd/hub但是,似乎目前的Grid2並不提供Safari支持。當我查找集線器中註冊節點的控制檯時,它沒有顯示Safari的圖標。也許我錯過了什麼。下次我會嘗試添加平臺和版本,看看是否有差異,但不要想。

下面是錯誤的一個片段,我得到了GRID2與SafariDriver:

2012年5月11日下午6時01分11秒org.openqa.selenium.remote.RemoteWebDriver執行 INFO:執行:[空,newsession的{「desiredCapabilities」:「Capabilities [{}} {}}}}}}} //錯誤://未捕獲的異常:類型變量聲明:對象構造函數 :at行:7:in file :: new RemoteWebDriver URL(「http: //172.22.6.198:4446/wd/hub」),c)

目標異常:org.openqa.selenium.WebDriverExcept離子:錯誤轉發所述n EW會話不能找到:{browserName =狩獵} 命令持續時間或超時:109毫秒

需要注意的:與webdriver的,相同的代碼可以被用於(獨立)遠程的webdriver執行VS網格,區別在於,對於使用遠程服務器ip和grid2的遠程,您使用hub ip。 SafariDriver通過遠程webdriver工作,但目前似乎還沒有在Grid2上工作。

遠程啓動的webdriver:

Java的罐子selenum服務器 - 獨立-2.21.0。jar [-port somePort] //默認端口4444

+0

雖然網格控制檯不顯示圖標,但這並不意味着它不會正確代理Safari請求。網格中心只是一個負載均衡路由器,用於請求註冊功能。 – nirvdrum 2012-05-15 02:28:02