当前位置: 首页 > 面试题库 >

Selenium-Chrome性能日志不起作用

柴辰阳
2023-03-14
问题内容

嗨,我有一个selenium脚本运行,应该给我性能日志。我有一个方法“ printLog”,应该(显然)打印性能日志。我的代码将能够准确地深入解释我要做什么。

static void printLog(String type, RemoteWebDriver driver, String inputURL)  {

    ChromeOptions cap = new ChromeOptions();
    LoggingPreferences logP = new LoggingPreferences();
    logP.enable(LogType.PERFORMANCE, Level.ALL);
    cap.setCapability(CapabilityType.LOGGING_PREFS, logP);

    List<LogEntry> entries = driver.manage().logs().get(type).getAll();
    System.out.println("\"Input URL\"," + "\"" + inputURL + "\"");
    for (LogEntry entry : entries) {
        // Checks whether this is a webtrends tag and whether it was accepted by the
        // server

        if (entry.getMessage().contains("statse") && entry.getMessage().contains("Network.responseReceived")) {
            String statseString = entry.getMessage();
            // regex for finding all wt tags: WT\..+?(?=&)
            // List<String> allMatches = new ArrayList<String>();
            // Matcher m = Pattern.compile("WT\\..+?(?=&)")
            // .matcher(statseString);
            // while (m.find()) {
            // allMatches.add(m.group());
            // }
            int statseBegin = statseString.indexOf("\"url\":\"") + 1;
            int statseEnd = statseString.indexOf("\"},\"", statseBegin);
            statseString = statseString.substring(statseBegin, statseEnd);
            String[] allMatches = statseString.split("&");
            for (String tags : allMatches) {
                tags = tags.replaceFirst("=", "ReallyLongUniqueStringWithNoChanceOfOverlap");
                String tagParts[] = tags.split("ReallyLongUniqueStringWithNoChanceOfOverlap");

                if (tagParts.length > 1) {
                    System.out.println("\"" + tagParts[0] + "\",\"" + tagParts[1] + "\"");
                } else {
                    System.out.println("\"" + tagParts[0] + ",\"\"");
                }
            }
        }
    }
}

当我运行代码时,Chrome打开,我在控制台中得到以下堆栈跟踪:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown 
error: log type 'performance' not found
(Session info: chrome=69.0.3497.92)
(Driver info: chromedriver=2.42.591088 
(7b2b2dca23cca0862f674758c9a3933e685c27d5),platform=Windows NT 10.0.16299 
x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05- 
08T15:15:03.216Z'
System info: host: 'WKSP0009ADAD', ip: '172.17.237.35', os.name: 'Windows 
10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, 
applicationCacheEnabled: false, browserConnectionEnabled: false, 
browserName: chrome, chrome: {chromedriverVersion: 2.42.591088 
(7b2b2dca23cca0..., userDataDir: C:\Users\BPJ0sGW\AppData\Lo...}, 
cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: 
{debuggerAddress: localhost:50809}, handlesAlerts: true, hasTouchScreen: 
false, javascriptEnabled: true, locationContextEnabled: true, 
mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: 
false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: 
false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, 
unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 
69.0.3497.92, webStorageEnabled: true, webdriver.remote.sessionid: 
f50e54d130a8c7e3b3a9cb6984f...}
Session ID: f50e54d130a8c7e3b3a9cb6984fcb558
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcc 
essorImpl.java:62)
atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstr 
uctorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
atorg.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:
atorg.openqa.selenium.remote.RemoteLogs.getRemoteEntries(RemoteLogs.java:81)
at org.openqa.selenium.remote.RemoteLogs.get(RemoteLogs.java:77)
at demoJenkins.WebTrendsCapture.printLog(WebTrendsCapture.java:141)
at demoJenkins.WebTrendsCapture.main(WebTrendsCapture.java:114)

我可以根据要求提供更多详细信息,但基本上我只是想弄清楚为什么该方法返回此错误。谢谢。


问题答案:

从https://github.com/seleniumhq/selenium-google-code-issue-
archive/issues/8386
通过@Kiril小号,这似乎用RemoteWebDriver时才会发生。使用纯ChromeDriver对象即可。



 类似资料:
  • 我不明白的第一个例子是,下面只打印“warning:root:hello from warn”。如果我理解正确的话,“logging.info”实际上调用根记录器,而根记录器默认为警告级别。所以第一个“Hello from Info”被忽略,这很好。但为什么第二个“你好从信息”也没有打印出来? 第二个问题是处理程序和记录器的日志级别。如果我们同时为处理程序和记录器设置日志级别,那么哪一个是有效的?

  • 问题内容: 我正在尝试遵循Web性能测试与WebDriver谷歌测试自动化大会演讲和ChromeDriver “性能日志”文档页面中提出的想法,以获取要提交给webtest稍后进行性能分析的跟踪数据。 如何使用 pythonselenium绑定 检索性能日志? 我试图打印出驱动程序实例中可用的 但只有 而且我没有看到相关的命令行开关。 问题答案: 默认情况下, 性能日志是 禁用的 。 要启用它,请

  • 问题内容: 自最新版本以来,我经历了Chrome的某些意外行为:在Firefox中,此代码可以正常运行: 它在Chrome中不起作用(只需下载一个名为“下载”的文件),但是以前效果很好。我必须更改一下它又能正常工作吗? 问题答案: 经过研究,我终于找到了您的问题。 下载属性: 如果存在HTTP标头Content-Disposition:,并且提供的文件名与此属性不同,则HTTP标头的优先级高于此属

  • 我使用了下面的代码进行拖放。它在Firefox驱动程序中工作,但在chrome驱动程序中不起作用。 请帮忙!

  • 我正在尝试以编程方式配置log4j2v2。11.1作为DefaultRolloverStrategy的一部分,使用新的删除操作删除旧文件。 正如您可以从下面的代码中看到的,我已将系统设置为每天创建日志文件,并在文件大小达到1MB时滚动该文件。 我尝试使用两个条件将删除操作添加到DefaultRolloverStrategy中—IfFileName和IfLastModified。IfFileName

  • 我试图在一个基于spring的项目中创建记录器策略。 我面临的问题与滚动政策有关。已创建logfile.log并且工作正常,但未创建滚动文件rollingfile.log.%d{yyyy-MM-dd}.log。