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

标签 selenium webdriver selenium-firefoxdriver

我写在这里是为了询问是否可以初始化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/

相关文章:

python - Selenium-调试 : Element is not clickable at point (X, Y)

python - 如何打开新的浏览器选项卡?

firefox - 如何使用 webdriver 在 Firefox 中禁用阅读器 View

java - Selenium WebDriver 在调试中通过,但在定期运行时则不然

excel - 有没有办法在 VBA 中更改 Selenium 的 chromedriver 位置?

java - Selenium Webdriver (Chrome) 无法在悬停元素上找到下拉菜单

css - 如何使用 CSS 选择器提取具有特定子字符串内容的标签?

python - 使用 Selenium Webdriver 下载时命名文件

c# - 在 Selenium 的 FirefoxOptions 中设置 BrowserExecutableLocation 并不能防止 "Unable to find a matching set of capabilities"错误

带有 Selenium 的 Python : Unable to locate element error