问题描述
我已经安装了Cucumberjs,chromedriver和selenium-webdriver。 当我运行npm运行黄瓜时,我得到了错误
Steins-MacBook-Air:todoguiacceptacceptancetest steinkorsveien $ npm run 黄瓜
> todofrontenf@0.1.0 cucumber /Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest > cucumber-js P-----P----P----....(node:1152) UnhandledPromiseRejectionWarning: Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:50840 at ClientRequest.<anonymous> (/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/http/index.js:262:15) at ClientRequest.emit (events.js:314:20) at Socket.socketErrorListener (_http_client.js:469:9) at Socket.emit (events.js:314:20) at emitErrorNT (internal/streams/destroy.js:100:8) at emitErrorCloseNT (internal/streams/destroy.js:68:3) at processticksAndRejections (internal/process/task_queues.js:80:21) (Use `node --trace-warnings ...` to show where the warning was created) (node:1152) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async
没有捕获块的功能,或者拒绝了原本是 未使用.catch()处理。终止未处理的节点进程 承诺拒绝,请使用CLI标志
--unhandled-rejections=strict
(请参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:3) (节点:1152)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,承诺拒绝 未处理将以非零退出终止Node.js进程 码。 F ----。(节点:1152)UnhandledPromiseRejectionWarning:NoSuchElementError:没有这样的元素:无法找到元素: {“ method”:“ css选择器”,“ selector”:“ * [id =” loginLink“]”} (会议信息:无头铬= 84.0.4147.125) 在Object.throwDecodedError(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/error.js:550:15) 在parseHttpResponse(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/http.js:565:13) 在Executor.execute(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/http.js:491:26) 在processticksAndRejections(内部/流程/task_queues.js:93:5) 在thenableWebDriverProxy.execute(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/webdriver.js:700:17) 在toWireValue(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/webdriver.js:139:15) 在/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/webdriver.js:190:16中 在forEachKey(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/webdriver.js:184:9) 在convertKeys(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/webdriver.js:189:3) 在thenableWebDriverProxy.execute(/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/lib/webdriver.js:698:22) (节点:1152)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。该错误是由抛出异步内部引起的 没有捕获块或拒绝承诺 未使用.catch()处理。终止未处理的节点进程 承诺拒绝,请使用CLI标志--unhandled-rejections=strict
(请参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:4) F-F--P ----Failures: 1) Scenario: Login failure # src/features/Login.feature:8 ✖ Given I am currently loged out # src/features/steps/login.steps.js:6 Error: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:50840 at ClientRequest.<anonymous> (/Users/steinkorsveien/Development/todo/todoguiacceptacceptancetest/node_modules/selenium-webdriver/http/index.js:262:15) at ClientRequest.emit (events.js:314:20) at Socket.socketErrorListener (_http_client.js:469:9) at Socket.emit (events.js:314:20) at emitErrorNT (internal/streams/destroy.js:100:8) at emitErrorCloseNT (internal/streams/destroy.js:68:3) at processticksAndRejections (internal/process/task_queues.js:80:21
我的package.json看起来像这样
{
"name": "todofrontenf","version": "0.1.0","private": true,"dependencies": {
"@babel/core": "^7.10.5","@babel/plugin-transform-runtime": "^7.11.0","@babel/preset-env": "^7.10.4","@babel/preset-react": "^7.10.4","@babel/register": "^7.10.5","babel-jest": "^26.2.1","cucumber": "^6.0.5","dotenv": "^8.2.0","expect": "^26.4.0","jest": "^26.2.1","react": "^16.13.1","react-dom": "^16.13.1","react-test-renderer": "^16.13.1","selenium-webdriver": "^4.0.0-alpha.7","winston": "^3.3.3","winston-elasticsearch": "^0.7.12"
},"scripts": {
"cucumber": "./node_modules/.bin/cucumber-js"
},"eslintConfig": {
"extends": "react-app"
},"browserslist": {
"production": [
">0.2%","not dead","not op_mini all"
],"development": [
"last 1 chrome version","last 1 firefox version","last 1 safari version"
]
},"devDependencies": {
"@babel/plugin-proposal-class-properties": "^7.10.4","@reportportal/agent-js-jest": "^5.0.1","jest-sonar-reporter": "^2.0.0"
}
}
“我的世界”文件看起来像这样
import { setWorldConstructor,setDefaultTimeout } from 'cucumber'
import chrome from 'selenium-webdriver/chrome'
import {Builder} from 'selenium-webdriver'
export function CustomerWorld({attach,parameters}) {
this.attach = attach
this.parameters = parameters
this.driver = new Builder()
.forbrowser('chrome')
.setChromeOptions(new chrome.Options().headless())
.build()
setDefaultTimeout(30000 * 1000);
}
setWorldConstructor(CustomerWorld);
测试看起来像
import {Given,When,Then } from 'cucumber'
import {By} from 'selenium-webdriver'
import expect from 'expect'
let driver
Given('I am currently loged out',async function () {
driver = this.driver
await driver.get('http://localhost:3000');
const loginLink = await driver.findElement(By.id('loginLink'))
expect(loginLink)
loginLink.click()
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)