请帮助我 如何在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"
答案 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)