microsoft-edge - 在 nightwatchj.s 上为 Microsoft Edge 运行“waitForElementVisible”命令时出错
问题描述
当我尝试在 Microsoft 边缘浏览器中启动并加载页面时运行测试,但随后出现错误:
TypeError:运行“waitForElementVisible”命令时出错:尝试为“/wd/hub/session/8bf67432a94d18e24f88493fd249c629/element/[object Object]/displayed”创建 HTTP 请求时出错:请求路径包含非转义字符
对于 Chrome 和 Firefox 测试工作正常 测试代码
module.exports = {
'Demo test Ecosia.org': function (browser) {
browser
.url('https://www.ecosia.org/')
.waitForElementVisible('body')
.assert.titleContains('Ecosia')
.assert.visible('input[type=search]')
.setValue('input[type=search]', 'nightwatch')
.assert.visible('button[type=submit]')
.click('button[type=submit]')
.assert.containsText('.mainline-results', 'Nightwatch.js')
.end();
}
};
我的 nightwatch.conf.js
const seleniumServer = require('selenium-server');
const edgeDriver = require('edgedriver');
const chromeDriver = require('chromedriver');
const geckoDriver = require('geckodriver');
module.exports = {
src_folders: ['tests'],
custom_commands_path: '',
custom_assertions_path: '',
page_objects_path: '',
globals_path: '',
live_output: false,
disable_colors: false,
parallel_process_delay: 10,
"test_workers": {
"enabled": false,
"workers": "auto"
},
selenium: {
start_process: true,
//start_session: false,
server_path: seleniumServer.path,
check_process_delay: 5000,
host: '127.0.0.1',
port: 4144,
cli_args: {
"webdriver.ie.driver": ieDriver.path,
"webdriver.chrome.driver": chromeDriver.path,
"webdriver.gecko.driver": geckoDriver.path,
"webdriver.edge.driver": "node_modules/edgedriver_win64/msedgedriver.exe"
}
},
test_settings: {
skip_testcases_on_fail: false,
end_session_on_fail: false,
default: {
desiredCapabilities: {
browserName: 'chrome',
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true,
chromeOptions: {
w3c: false,
args: ['disable-gpu']
}
}
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true,
marionette: true,
}
},
edge: {
desiredCapabilities: {
browserName: 'MicrosoftEdge',
javascriptEnabled: true,
acceptSslCerts: true
}
},
}
};
解决方案
当您使用基于铬的新 Edge 时,我认为您可以参考 Chrome 的相同设置。
使用 Chrome 时会出现同样的错误,可以通过添加"w3c": false
. 因此,您可以添加以下行来修复 Edge Chromium 中的问题:
edgeOptions: { "w3c": false }
参考链接:TypeError ERR_UNESCAPED_CHARACTERS on testing Vue project using Nightwatch
推荐阅读
- google-cloud-platform - BigQuery API 在 API 和服务仪表板中两次列出
- c++ - C++ 调用 Lua 函数
- node.js - 节点版本不会使用 n 更新
- macos - 在 Mac OS Big Sur 中从代码窗口切换到终端的 VS 代码快捷方式
- reactjs - 满足最少条件时如何使用 yup 验证密码
- javascript - Chrome JavaScript 引擎日期解析默认为 2001 年
- django - Django模型与不同类型的对象相关
- kubernetes - 如何通过 kubectl 命令识别静态 Pod?
- ruby-on-rails - Rspec rails 在使用 Stimulus.js 自动加载弃用警告后挂起
- reactjs - 我无法使用 Hooks 在 React Native 的屏幕上显示从 Firebase 实时数据库获得的数据