在浏览网站时,是否有办法触发所有控制台日志和事件?
我尝试使用Capturing browser logs with Selenium WebDriver using Java上的答案,但是当我使用它时,analogLog()不会返回任何内容
System.setProperty("webdriver.chrome.driver", "C:\\Automation//chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setCapability(ChromeOptions.CAPABILITY, options);
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
options.setCapability("goog:loggingPref", logPrefs);
options.addArguments("incognito");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
public void log() {
LogEntries logEntries = driver.manage().logs().get(LogType.CLIENT);
for (LogEntry entry: logEntries) {
System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
}
System.out.println("=======================================================");
}
答案 0 :(得分:0)
您可以使用.setLogLevel
,但此方法仅适用于RemoteWebDriver
初始化,并且看起来像driver
初始化的WebDriver
。
将演员表添加到您的driver
。
driver = new ChromeDriver(options);
((RemoteWebDriver) driver).setLogLevel(Level.INFO);
driver.manage().window().maximize();
正在导入:
import java.util.logging.Level;
import org.openqa.selenium.remote.RemoteWebDriver;
答案 1 :(得分:0)
问题出在您的代码上
步骤1:
启用PERFORMANCE
和BROWSER
日志类型
LoggingPreferences logPrefs = new LoggingPreferences();
//To get network log
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
//To get console log
logPrefs.enable(LogType.BROWSER, Level.ALL);
第2步:
您使用的设置不正确。
错误:
options.setCapability("goog:loggingPref", logPrefs);
更正:options.setCapability( "goog:loggingPrefs", logPrefs );
第3步:
根据要求更正代码:
//TO get network logs
LogEntries logEntries = driver.manage().logs().get(LogType.PERFORMANCE);
//TO get console logs
LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);