gpt4 book ai didi

java - 使用 Selenium Grid 时的 ChromeDriver 日志记录

转载 作者:行者123 更新时间:2023-12-02 02:19:07 24 4
gpt4 key购买 nike

我想在 Windows 上的 Selenium Grid 上运行 ChromeDriver 时保存它的日志。如果我用这个命令启动节点就可以了

java -Dwebdriver.chrome.logfile=chromedriver.log -jar selenium-server-standalone.jar -role node -browser browserName=chrome

但问题是每次启动 ChromeDriver 的新实例时,它都会覆盖 chromedriver.log。

我尝试使用 chromedriver%time::=.%.logchromedriver%%time::=.%%.log 作为文件名来添加时间并避免覆盖。当我手动启动 ChromeDriver 时它可以工作,但当它由 Grid 节点启动时则不行。

我也尝试在 Selenium 测试的 Java 代码中执行此操作,但我只找到了本地 Selenium 而不是 Grid 的解决方案:

ChromeDriverService serv = new ChromeDriverService.Builder().usingAnyFreePort().withLogFile(
new File("chromedriver" + System.currentTimeMillis() + ".log")).build();
WebDriver driver = new ChromeDriver(serv);

最佳答案

为了获取 selenium 网格中的驱动程序日志,最好的方法应该是使用 selenium-log api。您不必关心测试在哪个节点/浏览器上运行,API 会负责。

首先,您告诉驱动程序要记录的级别:

LoggingPreferences logPref = new LoggingPreferences(); 
logPref.enable(LogType.DRIVER, Level.ALL);
capabilities.setCapability(CapabilityType.LOGGING_PREFS, logPref);

然后你像这样抓取日志条目:

driver.manage().logs().get(LogType.DRIVER).getAll()

您可以在其中找到 session 的所有日志条目。

祝测试/编码愉快。

关于java - 使用 Selenium Grid 时的 ChromeDriver 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com