如何使用C#在Firefox中启动特定的URL
我正在尝试使用Firefox启动特定的URL。 但我只能打开Firefox浏览器而无法启动该URL。
class BrowserHelper { IWebDriver driver; string path = Path.Combine(Environment.CurrentDirectory, @"gecko\\"); public void Navigate(string url) { path = path.Replace(@"\", @"\\"); var driverService = FirefoxDriverService.CreateDefaultService(path); driverService.HideCommandPromptWindow = true; if (driver == null) { driver = new FirefoxDriver(driverService); } driver.Url = url; driver.Navigate().GoToUrl(driver.Url); driver.Manage().Window.Maximize(); } } class Realtest { BrowserHelper BH = new BrowserHelper(); public void test() { string search ="apple"; BH.Navigate("https://www.google.com/search?q=" + search); } }
我只能得到这个页面:
以下是我要发布的最终url: https : //www.google.com.sg/search?q = apple
有什么建议? 提前致谢。
我已经尝试了下面的代码(在Java中),并且通过启动浏览器并加载URL也可以正常工作。
System.setProperty("webdriver.gecko.driver","Drivers/geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get("https://www.google.com.sg/search?q=apple");
所以我觉得问题出在本地机器上安装了geckodriver版本和FireFox浏览器。 我建议你将FireFox和geckodriver更新到最新版本。
使用带有c#的命令行还有一个非常简单的解决方案。
只需执行以下命令即可打开具有给定URL的新Firefox选项卡:
start firefox wikipedia.de
如果您愿意,也可以启动新的Firefox实例:
start firefox -new-instance wikipedia.de
最后但并非最不重要的是.Net代码在CLI中执行命令:
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() { Arguments = "/c start firefox wikipedia.de", CreateNoWindow = true, FileName = "CMD.exe" });
Firefox commandLine参数还可以完成很多其他工作。 你可以在这里找到所有这些: https : //developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options?redlocale = en-US&redctsctsg /Command_Line_Options
这也适用于chrome和opera,只需调用即可
start opera wikipedia.de
而不是Firefox。
您不需要设置driver.Url
,删除该行。
driver.Navigate().GoToUrl(url); driver.Manage().Window.Maximize();
此外,如果您只是想在不与页面交互的情况下启动单个URL,那么Selenium就太过分了。