21

Selenium WebDriverが使用するロガーをどうにかして入手することは可能ですか?発行されたすべてのコマンドのトランスクリプトをキャプチャしたい(例:開く、待つ、クリックするなど)。特に、テストをjunitにエクスポートしているので、Javaソリューションを探しています。

私は彼らのウェブサイトでこのコードを見つけました、しかしそれは標準的なアウトで何も表示しません

    DesiredCapabilities caps = DesiredCapabilities.firefox(); 
    LoggingPreferences logs = new LoggingPreferences(); 
    logs.enable(LogType.DRIVER, Level.FINEST); 
    caps.setCapability(CapabilityType.LOGGING_PREFS, logs); 
    driver = new FirefoxDriver(caps);
4

4 に答える 4

36

使用しているドライバーへのログインを有効にし、関心のあるログの種類とログレベルを選択します(FirefoxDriverを使用しており、すべての種類のログを有効にして、すべてのログメッセージを収集しています)

LoggingPreferences logs = new LoggingPreferences();
logs.enable(LogType.BROWSER, Level.ALL);
logs.enable(LogType.CLIENT, Level.ALL);
logs.enable(LogType.DRIVER, Level.ALL);
logs.enable(LogType.PERFORMANCE, Level.ALL);
logs.enable(LogType.PROFILER, Level.ALL);
logs.enable(LogType.SERVER, Level.ALL);

DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
desiredCapabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);

WebDriver driver = new FirefoxDriver(desiredCapabilities);

次に、テストを実行した後、ログを収集できます(私はDRIVERログのみを収集していますが、どのタイプのログでも同じことができます)

Logs logs = driver.manage().logs();
LogEntries logEntries = logs.get(LogType.DRIVER);

for (LogEntry logEntry : logEntries) {
    System.out.println(logEntry.getMessage());
}
于 2014-05-07T08:58:26.093 に答える
3

試す

driver.manage().logs()

ログとログタイプを取得するメソッドを備えたLogsインターフェイスが表示されます。ログインターフェースのドキュメントを参照してください

于 2013-09-26T20:36:55.533 に答える
0

utils loggerは最も簡単でわかりやすいものであり、使用できるため、log4jを使用してロギングを行っています(IMHO)。

POMの依存関係:

<dependency>
          <groupId> org.apache.cassandra</groupId>
          <artifactId>cassandra-all</artifactId>
          <version>0.8.1</version>
      </dependency>

      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.6.6</version>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
          <version>1.6.6</version>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jul-to-slf4j</artifactId>
          <version>1.6.6</version>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>log4j-over-slf4j</artifactId>
          <version>1.6.6</version>
          <scope>runtime</scope>
      </dependency>

インポートは次のとおりです。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

利用方法:

private static Logger log = LoggerFactory.getLogger(classname.class);

そしてそれをそのまま使用します:

logger.info ("butonCLick");
driver.findElement(By.id("blablabla")).click();

これがあなたのために働くことを願っています。

于 2012-11-04T15:44:36.540 に答える
0

これを試して -

import logging
logging.basicConfig(filename = log_filename, level = logging.DEBUG)

リファレンス-PythonでのSeleniumユニットテスト-ログファイルはどこにありますか?

于 2013-02-09T00:45:37.090 に答える