如何使用Selenium日志记录功能(使用C#)?

时间:2017-08-29 17:50:31

标签: c# selenium

我正在尝试在运行Selenium测试时记录信息。

以下是我正在使用的一些非常简单的示例代码:

using System.Threading;
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

class EntryPoint
{

    static void Main(string[] args)
    {
        string url = "http://testing.todorvachev.com/selectors/css-path/";
        string cssPath = "#search-2 > form > label > input";
        string xPath = "//*[@id=\"search-2\"]/form/label/input";

        IWebDriver driver = new ChromeDriver();

        driver.Navigate().GoToUrl(url);

        IWebElement cssPathElement = driver.FindElement(By.CssSelector(cssPath));
        IWebElement xPathElement = driver.FindElement(By.XPath(xPath));

        if (cssPathElement.Displayed)
        {
            Console.WriteLine("I can see the CSS path element");
        }
        else
        {
            Console.WriteLine("I can't see it");
        }

        driver.Quit();
    }
}

我知道Selenium有各种日志记录级别(https://raw.githubusercontent.com/wiki/SeleniumHQ/selenium/DesiredCapabilities.md),我只想学习如何从命令行实现它们。

我一直在尝试以下不同的变体,没有运气:

C:\Users\sandra\Desktop\WSD\SeleniumPractice\SetupEnvironment\SetupEnvironment\bin\Debug>SetupEnvironment.exe -log C:\temp\log

命令运行正常,并提供此输出:

Starting ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8) on port 58605
Only local connections are allowed.
I can see the CSS path element

没有任何内容写入我在命令中指定的文件。

1 个答案:

答案 0 :(得分:0)

作为使用Selenium的日志工具的替代方法,您可以使用log4net。只需在解决方案中安装log4net软件包,然后定义属性并在设置方法中初始化

private ILog Log;

[OneTimeSetUp]    
public void OneTimeSetUp() 
{
    Log = LogManager.GetLogger(GetType()); 
}

[Test]
public void LogTest()
{
    Log.Info("test test test test");
}

这是一个示例log4net.config文件,您可以使用它来启动它,它将记录到控制台和日志文件中:

<log4net>
  <root>
    <level value="ALL" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
  </root>
  <appender name="console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="file" type="log4net.Appender.RollingFileAppender">
    <file value="TestFramework.log" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
    </layout>
  </appender>
</log4net>

如果您想尝试一下,这只是硒记录的替代方案。