如何将 FirefoxDriver 附加到 Firefox 的 运行 实例?

How can I attach FirefoxDriver to a running instance of Firefox?

我已经用参数 --start-debugger-server 61300 启动了 firefox。

FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.AddAdditionalCapability("debuggerAddress", "127.0.0.1:61300");

var d = new FirefoxDriver(firefoxOptions);

d.Navigate().GoToUrl("https://google.com/");

如何将驱动程序附加到 firefox 的 运行 实例,以便我可以根据需要跳入和跳出控制它,而不是每次都使用随机端口启动一个新实例?

经过测试,我找到了一个可行的方法。 使用 jsakamoto 的 Selenium.WebDriver.GeckoDriver.Win64 nuget 包。

我运行使用命令行的firefox:

"C:\Program Files\Mozilla Firefox\firefox.exe" --marionette -foreground -no-remote

然后我创建默认服务并使用端口 2828 进行连接,这是 marionette 记录的默认端口。

FirefoxOptions firefoxOptions = new FirefoxOptions();

FirefoxDriverService firefoxDriverService = FirefoxDriverService.CreateDefaultService();
firefoxDriverService.HideCommandPromptWindow = false;
firefoxDriverService.BrowserCommunicationPort = 2828;
firefoxDriverService.ConnectToRunningBrowser = true;

var driver = new FirefoxDriver(firefoxDriverService, firefoxOptions);

driver.Navigate().GoToUrl("https://youtube.com/");

如果已经有geckodriver实例运行正在连接,需要先关闭。