如何使用C#在Firefox中启动特定的URL

时间:2018-01-21 05:09:09

标签: c# selenium firefox selenium-webdriver webdriver

我正在尝试使用Firefox启动特定的网址。但我只能打开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);
    }
}

我只能得到这个页面: enter image description here

以下是我要发布的最终网址:https://www.google.com.sg/search?q=apple

有什么建议吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

我已经尝试了以下代码(使用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更新到最新版本。

答案 1 :(得分:0)

使用带有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?redirectlocale=en-US&redirectslug=Command_Line_Options

这也适用于chrome和opera,只需调用

即可
start opera wikipedia.de

而不是Firefox。

答案 2 :(得分:-1)

您无需设置@app.route('/ajax', methods=['POST']) def ajax(): upload_file = request.files.getlist('upload-file') for file in upload_file: if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], Case_ID + filename)) # Save the filename into a list, we'll use it later filenames.append(filename) return redirect('/result') ,删除该行。

driver.Url

此外,如果您只是想在不与页面交互的情况下启动单个URL,那么Selenium就有点过分了。