我写在这里是为了询问是否可以初始化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 时?
最佳答案
这是the most demanded feature request in Selenium 。但是,仍然无法将 WebDriver
附加到正在运行的浏览器窗口。您在 RemoteWebDriver
中发现的是可以在另一台计算机上远程运行测试。但该计算机仍然需要启动一个新的浏览器窗口。
我猜你可以将你的应用程序编写为一个集线器(HUB),它会将所有 jar(类)排入队列以运行,启动单个 Firefox 实例并传递驱动程序
引用。这不是一个很好的解决方案,据我所知,还没有人做到过。
FirefoxProfile
。如果您创建一个专用于测试的配置文件并始终使用此配置文件启动 Firefox,那么速度会明显加快。
关于selenium - 如何使用selenium在不同的应用程序中重用相同的WebDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10738407/