2012-04-25 55 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