0

http://nightwatchjs.org/gettingstartedから手順を実行しました。 そして、私のテストファイルに私がhttp://nightwatchjs.org/guide/.WaitForElementVisibleはNightwatchテンプレートプロジェクトの未解決関数

module.exports = { 
    'Demo test Google' : function (browser) { 
    browser 
     .url('http://www.google.com') 
     .waitForElementVisible('body', 1000) 
     .setValue('input[type=text]', 'nightwatch') 
     .waitForElementVisible('button[name=btnG]', 1000) 
     .click('button[name=btnG]') 
     .pause(1000) 
     .assert.containsText('#main', 'Night Watch') 
     .end(); 
     } 
}; 

から次のコードを持っている。また、これは私のpackage.jsonがどのように見えるかです。

{ 
    "name": "try_nw", 
    "version": "1.0.0", 
    "description": "try_nightwatch", 
    "main": "nightwatch.js", 
    "scripts": { 
    "test": "node nightwatch -e chrome" 
}, 
    "author": "", 
    "license": "ISC", 
"dependencies": { 
    "bower": "^1.8.2", 
    "chromedriver": "^2.34.0", 
    "geckodriver": "^1.10.0", 
    "nightwatch": "^0.9.19", 
    "selenium-server-standalone-jar": "^3.8.1" 
    } 
} 

そして私のnightwatch.json

{ 
    "src_folders" : ["tests"], 
    "output_folder" : "reports", 
    "custom_commands_path" : "", 
    "custom_assertions_path" : "", 
    "page_objects_path" : "", 
    "globals_path" : "", 

    "selenium" : { 
    "start_process" : true, 
"start_session" : true, 
"server_path" : "bin/selenium-server-standalone-3.8.1.jar", 
"log_path" : "", 
"port" : 4444, 
"cli_args" : { 
    "webdriver.chrome.driver" : "bin/chromedriver.exe", 
    "webdriver.gecko.driver" : "", 
    "webdriver.edge.driver" : "" 
} 
}, 

"test_settings" : { 
"default" : { 
    "launch_url" : "http://localhost", 
    "selenium_port" : 4444, 
    "selenium_host" : "localhost", 
    "silent": true, 
    "screenshots" : { 
    "enabled" : false, 
    "path" : "" 
    }, 
    "desiredCapabilities": { 
    "browserName": "chrome", 
    "javascriptEnabled": true, 
    "acceptSslCerts": true, 
    "chromeOptions" : { 
     "args" : ["--no-sandbox", "--start-maximized", "--disable-infobars"] 
    } 
    } 
}, 

"chrome" : { 
    "desiredCapabilities": { 
    "browserName": "chrome", 
    "javascriptEnabled": true, 
    "acceptSslCerts": true 
    } 
}, 

"edge" : { 
    "desiredCapabilities": { 
    "browserName": "MicrosoftEdge" 
    } 
    } 
} 
} 

しかし、私はテストを実行すると、クロムの空白タブが開き、コンソールには次の出力を示します。

Starting selenium server... started - PID: 15024 

[Googletests] Test Suite 
============================ 

Running: Demo test Google 

× Timed out while waiting for element <body> to be present for 1000 
    milliseconds. - expected "visible" but got: "not found" 

at Object.Demo test Google (E:\JS\Try_NW\tests\googletests.js:6:14) 
at process._tickCallback (internal/process/next_tick.js:150:11) 


FAILED: 1 assertions failed (5.972s) 

_________________________________________________ 

TEST FAILURE: 1 assertions failed, 0 passed. (6.088s) 

× googletests 

- Demo test Google (5.972s) 
Timed out while waiting for element <body> to be present for 1000 milliseconds. - expected "visible" but got: "not found" 
    at Object.Demo test Google (E:\JS\Try_NW\tests\googletests.js:6:14) 
    at process._tickCallback (internal/process/next_tick.js:150:11) 


Process finished with exit code 1 

ので、 < .waitForElementVisible>が定義されていません。誰でも決定を提案できますか?

+0

それは 'waitForElementVisible'が定義されていないことを言うのでしょうか? o_O – Tomalak

+0

@Tomalak WebStormはこれに下線を引いて、<未解決の関数またはメソッドvaitForElementVisible()>と言っています。 –

+0

タイムアウトを増やす必要があると思います。私はちょうどあなたのテストをコピーし、最初の 'waitForElementVisible()'は正常に動作しました。私はそれを実行したときにボタンを探している人に爆破した。 – tehbeardedone

答えて

0

発生している問題は、waitForElement、またはスクリプトごとに別のものがあります。その前のsetValueはchromeDriverとブラウザで異なる動作をします。なぜタブが開いているのか、エラーメッセージはbody要素が見つからないことが原因です。

クロムドライバを更新すると、スクリプトを動作させることができます。

https://sqa.stackexchange.com/questions/30150/chrome-62-sendkeys-seems-to-be-causing-chrome-settings-help-to-open

+0

提案していただきありがとうございます!私はFireFoxでそれを実行し、それは動作します!なぜそれがクロムで動作しなかったのか分かりません。次の行を変更しました: '' webdriver.gecko.driver ': "bin/geckodriver.exe"、 '' desiredCapabilities':{"browserName": "firefox"、 "javascriptEnabled":true、 "acceptSslCerts":true} '] –

+0

おそらくクロームドライバhttps://github.com/nightwatchjs/nightwatch/issues/1329のバグです –

0

テストに失敗する原因があります。私は同じ1000 msタイムアウトであなたのテストを走らせることができました、そしてそれはわずかな変更でうまく合格しました。タイムアウトをwaitForElementVisible()に増やしてみてください。次のテストは問題なく私に渡されました。

browser 
    .url('http://www.google.com') 
    .waitForElementVisible('body', 1000) 
    .setValue('input[type=text]', ['nightwatch', browser.Keys.ENTER]) 
    .pause(1000) 
    .assert.containsText('#main', 'Night Watch') 
    .end();  
} 
+0

私はすでにタイムアウトを増やそうとしましたが、成功しませんでした。ページはまだ空白です。 –

関連する問題