在PhantomJS Selenium Webdriver中关闭INFO

时间:2014-07-25 12:51:13

标签: c# selenium-webdriver

我使用Selenium PhantomJS Webdriver在我的C#应用​​程序中抓取一个页面。我经常使用控制台,所以我想关闭它不断输出的INFO消息。有人有同样的问题吗?

4 个答案:

答案 0 :(得分:1)

我认为这个字符串必须添加到Wasp回答:

service.HideCommandPromptWindow = true;

所以

    static IWebDriver CreateInfolessPhantom(string logFilePath)
{
    PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
    service.LogFile = logFilePath;
    service.HideCommandPromptWindow = true;
    return new PhantomJSDriver(service);
}

答案 1 :(得分:0)

我找到了一个帮助我的解决方法,尽管它并不完美。它清除每次启动webdriver时创建的信息。我使用一个简单的方法返回一个新的驱动程序,在其中,我调用一个方法来清除控制台中创建的行,并将控制台光标定位在下一行。

public static IWebDriver GetDriver()
    {
        IWebDriver driver = new PhantomJSDriver();
        ClearCurrentConsoleLine();
        return driver;
    }
    public static void ClearCurrentConsoleLine()
    {
        int pos = Console.CursorTop;
        for (int i = 0; i < 20; i++)
        {
            Console.SetCursorPosition(0, Console.CursorTop - i);
            Console.Write(new string(' ', Console.WindowWidth));
            Console.SetCursorPosition(0,pos);
        }
        Console.SetCursorPosition(0,Console.CursorTop-19);
    }

答案 2 :(得分:0)

以下代码对我来说很好:

var driverService = PhantomJSDriverService.CreateDefaultService(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
driverService.SuppressInitialDiagnosticInformation = true;
driverService.AddArgument("--webdriver-loglevel=NONE");
driver = new PhantomJSDriver(driverService);

答案 3 :(得分:-1)

这是我的第一个代码提交,如果它对您有帮助,请将其投票,或者如果您有改进,请添加评论。

using System;
using System.Collections.Generic;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.PhantomJS;

namespace PhantomJSExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string logFilePath = @"C:\Users\Username\Desktop\outputLog.log";
            IWebDriver driver = CreateInfolessPhantom(logFilePath);
        }

        // Prepares a PhantomJS driver that does not dislay its logs in the console window.
        // The trade-off is, you have to give it a file path to output to instead.
        static IWebDriver CreateInfolessPhantom(string logFilePath)
        {
            PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
            service.LogFile = logFilePath;

            return new PhantomJSDriver(service);
        }
    }
}