Selenium Grid与safari浏览器

时间:2012-04-25 12:41:47

标签: selenium selenium-grid

请帮助我 如何在selenium网格中实例化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"

2 个答案:

答案 0 :(得分:1)

如果问题是关于使用Safari的新方法,使用SafariDriver而不是Grid2,那么这将是我认为的典型方法(或多或少):

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);

这应该有效。在服务器端,我相信你只是根据wiki文档正常实例化Grid2(最后一次检查,现在可能是差异):

//启动集线器 java -jar selenium-server-standalone-2.21.0.jar -role hub -port theHubPort

//启动节点 java -jar selenium-server-standalone-2.21.0.jar -role node -hub http: //172.22.6.198:4446/wd/hub -port theNodePort

然而,似乎当前的Grid2不提供Safari支持。当我在集线器中查找注册节点的控制台时,它没有显示Safari的图标。也许我错过了什么。我下次会尝试添加平台和版本,看看是否会产生差异,但不要想。

以下是我使用SafariDriver获取Grid2错误的片段:

2012年5月11日下午6:01:11 org.openqa.selenium.remote.RemoteWebDriver执行 INFO:执行:[null,newSession {“desiredCapabilities”:“Capabilities [{browse RNAME =狩猎}]“}] //错误://未捕获异常:类型化变量声明:对象构造函数  :at line:7:in file :: new RemoteWebDriver(new URL(“http: //172.22.6.198:4446/wd/hub“),c)

目标异常:org.openqa.selenium.WebDriverException:转发n时出错 ew session无法找到:{browserName = safari} 命令持续时间或超时:109毫秒

要注意:使用webdriver,相同的代码可用于(独立)远程webdriver执行vs网格,区别在于远程使用远程服务器ip和grid2,使用hub ip。 SafariDriver可以在远程webdriver上运行,但目前似乎还没有在Grid2上运行。

远程webdriver启动:

java -jar selenum-server-standalone-2.21.0.jar [-port somePort] //默认端口4444

答案 1 :(得分:0)

我相信你要求的是这样的?

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

我通常使用WebDriver,但我的理解是功能是创建浏览器实例时的选项,而不是打开浏览器本身。虽然我可能错了,因为我对Selenium Grid没有经验。

编辑:Thisthis可能会有所帮助。