gpt4 book ai didi

node.js - Selenium:尝试获取 Firefox 控制台日志结果为 "WebDriverError: HTTP method not allowed"

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:38 27 4
gpt4 key购买 nike

我试图在我的 selenium 测试中捕获控制台错误(具有 selenium-webdriver 4.0.0-alpha.5 和最新的 geckodriver 和 chromedriver 的 Node 环境)。我已经为 Firefox 设置了一个驱动程序,为 Chrome 设置了另一个驱动程序,如下所示:

const chrome = require('selenium-webdriver/chrome');
const firefox = require('selenium-webdriver/firefox');
const webdriver = require('selenium-webdriver');
const { Builder, By, Capabilities, until } = webdriver;

let loggingPref = new webdriver.logging.Preferences();
loggingPref.setLevel( 'browser', webdriver.logging.Level.SEVERE );

let driver_fx = await new Builder()
.withCapabilities(
Capabilities.firefox()
.set("acceptInsecureCerts", true)
)
.setLoggingPrefs( loggingPref )
.build();

let driver_chr = await new Builder()
.forBrowser('chrome')
.setLoggingPrefs( loggingPref )
.build();

这是应该获取错误日志的函数:

const getConsoleErrors = (driver) => {
return driver.manage().logs().get('browser').then((logs) => {
return logs.map(( log ) => log.message );
});
}

使用 Chrome 驱动程序,这可以按预期工作:

await driver.get(devUrl);

let errors = await getConsoleErrors(driver_chr);
console.log(errors);
// output:
// [ 'https://mylocaldevserver/with/path 465:61 Uncaught TypeError: Cannot read property \'textContent\' of null' ]

但是,当将 driver_fx 传递给函数时,会导致以下异常:

WebDriverError: HTTP method not allowed
at parseHttpResponse (***\node_modules\selenium-webdriver\lib\http.js:580:11)
at Executor.execute (***\node_modules\selenium-webdriver\lib\http.js:489:26)
at process._tickCallback (internal/process/next_tick.js:68:7)

这是 selenium 或 geckodriver 中的错误,还是我构建 Firefox 驱动程序的方式不同(我需要这样做才能忽略本地开发服务器的证书)?

最佳答案

对于 future 的 Google 员工来说,不幸的是 log('browser') 不在 W3C 规范中,因此 geckodriver 团队似乎正在拖延它。截至今天(2020 年 2 月 17 日),还没有官方“修复”该问题。

您很可能必须使用类似的解决方法:https://github.com/mozilla/geckodriver/issues/284#issuecomment-477677764

在此处查找更多信息:https://github.com/mozilla/geckodriver/issues/284

关于node.js - Selenium:尝试获取 Firefox 控制台日志结果为 "WebDriverError: HTTP method not allowed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59192232/

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