【问题标题】:How can i capture Browser console log using selenium and java如何使用 selenium 和 java 捕获浏览器控制台日志
【发布时间】:2017-10-03 12:52:57
【问题描述】:

我想使用 selenium 和 java 为任何 js 事件触发或错误捕获日志。任何类型的帮助或建议将不胜感激?我试过这段代码,但它不能正常工作

public void HomePageConsole () throws InterruptedException {
    driver.findElement(By.id("drop-down")).click();
    driver.findElement(By.xpath(".//*[@id='js-top-currency']/li[4]/a")).click();
       LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);
        for (LogEntry entry : logEntries) {
          // System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
           //System.out.println("Checking ExitUnit: 5th Line will be true ");
            Thread.sleep(10000);
            System.out.println("Exit Unit Open : "+entry.getMessage().contains("has been triggered!"));

}}

【问题讨论】:

  • 我已经添加了代码,这个代码字只有Mozilla,但有时不能得到适当的结果,结果也按时间戳显示。我想把所有日志放在一起,这样我就可以检查Js事件
  • “无法正常工作”不是问题描述。

标签: javascript java selenium selenium-webdriver


【解决方案1】:
public void analyzeLog() {

    LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);
    for (LogEntry entry : logEntries) {
        System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
        //do something useful with the data
    }
}

【讨论】:

  • 它是否适用于所有浏览器?如FF、Chrome、IE等
【解决方案2】:

通过它自己的 toString 覆盖来打印 LogEntry 的一种更有效的方法:

LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);
for (LogEntry entry : logEntries) {
    System.out.println(entry.toString());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2020-08-21
    • 2016-02-09
    • 2014-08-26
    相关资源
    最近更新 更多