我使用Selenium PhantomJS Webdriver在我的C#应用程序中抓取一个页面。我经常使用控制台,所以我想关闭它不断输出的INFO消息。有人有同样的问题吗?
答案 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);
}
}
}