1

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

2 回答 2

1

如果问题是关于以新方式使用 Safari,SafariDriver over 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 执行信息:执行:[null,newSession {"desiredCapabilities":"Capabilities [{browse rName=safari}]"}] // 错误: // 未捕获的异常:类型变量声明:对象构造函数:在第 7 行:在文件中::new RemoteWebDriver (new URL ("http://172.22.6.198:4446/wd/hub"), c)

目标异常:org.openqa.selenium.WebDriverException:转发新会话时出错,找不到:{browserName=safari} 命令持续时间或超时:109 毫秒

注意:对于 webdriver,相同的代码可用于(独立)远程 webdriver 执行与网格,不同之处在于对于远程,您使用远程服务器 ip,而对于 grid2,您使用集线器 ip。SafariDriver 在远程 webdriver 上工作,但目前似乎还没有在 Grid2 上工作。

远程 webdriver 启动:

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

于 2012-05-12T03:44:41.827 回答
0

我相信你要的是这样的东西?

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

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

编辑:可能会有所帮助。

于 2012-04-26T03:26:11.783 回答