3

我在这里写信是想问是否可以初始化WebDriver

WebDriver driver = new FirefoxDriver();

并为许多 jar 应用程序使用相同的浏览器,这样做,在其他 jar 文件中,类似:

int port = ...;
String host = ...;
WebDriver driver = getDriver(host,port);

我问这个问题是因为 FirefoxDriver 加载和出现的速度非常慢,我需要调用许多 jar 来加载该驱动程序。我认为通过这种方式,只加载一次我的驱动程序,我的整个应用程序将比打开该驱动程序的 N 次 N 实例快。我希望我的问题是明确的和格式良好的:) 谢谢大家!

编辑:我看到有可能使用RemoteWebDriver.

DesiredCapabilities capability = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);

我该如何使用它?当我必须在 localhost:4444 中实例化 webdriver 时?

4

1 回答 1

1

这是Selenium 中最需要的功能请求。但是,仍然无法将 a 附加WebDriver到正在运行的浏览器窗口。您发现的RemoteWebDriver是在另一台计算机上远程运行测试的可能性。但是那台计算机仍然需要启动一个新的浏览器窗口。

我猜你可以把你的应用程序写成一个 HUB,它将所有 jars(类)排入队列以运行,启动一个 Firefox 实例并传递driver引用。这不是一个好的解决方案,据我所知,还没有人这样做。

但!在 Firefox 中启动时花费的大部分时间是创建一个新的FirefoxProfile. 如果您创建了一个专门用于测试的配置文件并始终使用此配置文件启动 Firefox,它会明显更快。

于 2012-05-24T14:44:21.243 回答