gpt4 book ai didi

selenium - 如何使用selenium在不同的应用程序中重用相同的WebDriver

转载 作者:行者123 更新时间:2023-12-03 06:36:08 25 4
gpt4 key购买 nike

我写在这里是为了询问是否可以初始化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 实例并传递驱动程序引用。这不是一个很好的解决方案,据我所知,还没有人做到过。

但是! Firefox 启动时花费的大部分时间是创建一个新的 FirefoxProfile 。如果您创建一个专用于测试的配置文件并始终使用此配置文件启动 Firefox,那么速度会明显加快。

关于selenium - 如何使用selenium在不同的应用程序中重用相同的WebDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10738407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com