TDD 방법론을 사용하여 웹 프로그램을 개발했습니다. 따라서 테스트는 Selenium WebDriver 라이브러리를 사용하고 있습니다. 하지만 내 프로그램이 제대로 작동하지 않는 것 같습니다. 다음은 소스 코드입니다.모카 및 셀레늄 어설 션 중에 웹 드라이브 오류가 발생했습니다
공공/index.html을 :
<h1 class="hello">Hello, world!</h1>
시험/test.js :
'use strict'
var assert = require('assert')
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until
var driver;
before(() => {
driver = new webdriver.Builder()
.forBrowser('chrome')
.build()
})
describe('Index page',() => {
before(() => {
driver.get('http://localhost:8080/')
})
it('should show hello greetings',() => {
let hello = driver.findElement(By.css('h1.hello'))
assert.equal(hello.getText(), 'Hello, world!')
})
})
package.json :
{
"name": "foobar",
"version": "1.0.0",
"description": "",
"main": "index.js",
"devDependencies": {
"mocha": "^2.5.3"
"selenium-webdriver": "^2.53.2"
},
"scripts": {
"start": "http-server public",
"test": "mocha"
},
"author": "",
"license": "ISC"
}
그리고 난 다음 명령을 실행했습니다. 내가 npm test
명령을 사용하여 모든 테스트를 실행할 때 npm start
명령을 실행하거나되지 않은에
C:\Projects\foobar>npm install
그래서, 그것은 관계없이 항상 실패했습니다.
C:\Projects\foobar>npm test
> [email protected] test C:\Projects\foobar
> mocha
Index page
1) should show hello greetings
0 passing (62ms)
1 failing
1) Index page should show hello greetings:
AssertionError: ManagedPromise {
flow_:
ControlFlow {
propagateUnhandledRejections_: true,
activeQueue_:
TaskQueue {
== 'Hello, world!'
at Context.<anonymous> (C:\Projects\foobar\test\test.js:22:16)
at callFn (C:\Projects\foobar\node_modules\mocha\lib\runnable.js:326:21)
at Test.Runnable.run (C:\Projects\foobar\node_modules\mocha\lib\runnable.js:319:7)
at Runner.runTest (C:\Projects\foobar\node_modules\mocha\lib\runner.js:422:10)
at C:\Projects\foobar\node_modules\mocha\lib\runner.js:528:12
at next (C:\Projects\foobar\node_modules\mocha\lib\runner.js:342:14)
at C:\Projects\foobar\node_modules\mocha\lib\runner.js:352:7
at next (C:\Projects\foobar\node_modules\mocha\lib\runner.js:284:14)
at Immediate._onImmediate(C:\Projects\foobar\node_modules\mocha\lib\runner.js:320:5)
npm ERR! Test failed. See above for more details.
제가 생각하기에 주된 이슈는 hello.getText()
입니다. getText()
메서드는 hello 요소의 텍스트를 가져올 수 없습니다.
'h1.hello'는 유효한 검색어가 아닙니다. – cviejo
'findElement (By.css ('h1.hello'))'. 'html'에서'h1'은'hello' 값을 가진'class' 속성을 가지고 있지 않습니다. 그것은 요소를 찾을 수 있기 때문에 당신은 이것을'html' 샘플에 넣는 것을 잊었다 고 가정하고 있습니까? – RemcoW
@cviejo @RemcoW 고맙습니다. 그러나,'
Hello, world!로 수정하면!
', 차이는 없습니다. – signal