我正在尝试为Java Selenium中的RemoteWebDriver
启用性能日志记录。我有这样的代码:
public WebDriver getDriver() {
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments(arguments);
chromeOptions.setAcceptInsecureCerts(acceptInsecureCerts);
DesiredCapabilities desiredCapabilites = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
desiredCapabilites.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
desiredCapabilites.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
return new RemoteWebDriver(new URL(url), desiredCapabilites);
}
稍后尝试访问性能日志时,如下所示:
driver.manage().logs().get("performance")
我得到以下错误:
org.openqa.selenium.InvalidArgumentException: invalid argument: log type 'performance' not found
(Session info: headless chrome=95.0.4638.69)
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'tr-glass-gather-crawler-workerjrsgs-pod-mfk8b', ip: '172.21.62.217', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.120+', java.version: '11.0.8'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities {acceptInsecureCerts: true, browserName: chrome, browserVersion: 95.0.4638.69, chrome: {chromedriverVersion: 95.0.4638.54 (d31a821ec901f..., userDataDir: /tmp/.com.google.Chrome.vRBs3j}, goog:chromeOptions: {debuggerAddress: localhost:36139}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), se:cdp: ws://172.21.62.217:4444/ses..., se:cdpVersion: 95.0.4638.69, se:vnc: ws://172.21.62.217:4444/ses..., se:vncEnabled: true, se:vncLocalAddress: ws://172.21.62.217:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: d595d868024953284123f1c300378445
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:35)
at org.openqa.selenium.remote.RemoteLogs.getRemoteEntries(RemoteLogs.java:81)
at org.openqa.selenium.remote.RemoteLogs.get(RemoteLogs.java:77)
at com.wayfair.glass.gather.worker.crawler.WFPartnerCrawlerFacadeImpl.navigate(WFPartnerCrawlerFacadeImpl.java:110)
at com.wayfair.glass.gather.worker.plugin.impl.CrawlerGatherPlugin.internalRun(CrawlerGatherPlugin.java:93)
at com.wayfair.glass.gather.worker.plugin.impl.CrawlerGatherPlugin.run(CrawlerGatherPlugin.java:69)
at com.wayfair.glass.gather.worker.plugin.PluginRunner.run(PluginRunner.java:45)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:819)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:803)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:346)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
at com.wayfair.glass.gather.worker.GlassGatherWorkerApplication.main(GlassGatherWorkerApplication.java:12)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
如果我使用ChromeDriver
而不是RemoteWebDriver
,这似乎是可行的。
有什么想法吗?
发布于 2021-11-25 08:31:18
显然改变了这一点:
desiredCapabilites.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
要这样做:
desiredCapabilites.setCapability("goog:loggingPrefs", logPrefs);
解决了它
https://stackoverflow.com/questions/70098690
复制相似问题