2015-06-30 10 views
8

मैं स्थानीय ऐप पर निर्भर ऐप का परीक्षण करने की कोशिश कर रहा हूं। जब मैं ब्राउज़र से मैन्युअल रूप से बातचीत करता हूं तो सब कुछ ठीक काम करता है। हालांकि, वांछित स्ट्रिंग के बजाय nightwatch.js में मुझे स्थानीय स्टोरेज का अनुरोध करते समय एक शून्य प्रतिक्रिया मिलती है। यह क्रोम और फ़ायरफ़ॉक्स दोनों में लागू होता है।nightwatch.js में स्थानीय स्टोरेज/वेबस्टॉरेज सक्षम करें

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

    "selenium" : { 
    "start_process" : true, 
    "server_path" : "/Library/WebDevelopment/selenium-server/selenium-server-standalone-2.45.0.jar", 
    "log_path" : "", 
    "host" : "127.0.0.1", 
    "port" : 4444, 
    "cli_args" : { 
     "webdriver.chrome.driver" : "/usr/local/lib/node_modules/chromedriver/lib/chromedriver/chromedriver", 
     "webdriver.ie.driver" : "" 
    } 
    }, 

    "test_settings" : { 
    "default" : { 
     "launch_url" : "http://localhost", 
     "selenium_port" : 4444, 
     "selenium_host" : "localhost", 
     "silent": true, 
     "screenshots" : { 
     "enabled" : false, 
     "path" : "" 
     }, 
     "desiredCapabilities": { 
     "browserName": "chrome", 
     "webStorageEnabled" : true, 
     "databaseEnabled" : true, 
     "applicationCacheEnabled" : true, 
     "nativeEvents" : true, 
     "javascriptEnabled": true, 
     "acceptSslCerts": true 
     } 
    } 
} 

localStorage जब nightwatch.js का उपयोग कर काम करने के लिए माना जाता है:

मैं पहले से ही Nightwatch JSON में localStore सक्षम करने के लिए "webStorageEnabled" : true बताए द्वारा desiredCapabilities इस तरह में करने की कोशिश की?

उत्तर

2

अपने परीक्षण में LocalStorage साथ काम कर रहा है, तो आप ब्राउज़र में जावास्क्रिप्ट इंजेक्षन और ब्राउज़र LocalStorage

it.only('expectation', function (client) { 

    client.url('www.someurl.com').execute(function(data) { 
     try { 
      // statements 
      localStorage.pepe = 1 
      console.log('local', localStorage) 
     } catch(e) { 
      // statements 
      console.log(e); 
     } 
     return true; 
    }, [], function(result) { 
    }); 
    client.pause(0); 
}); 
+0

यह मुझे सही रास्ते पर मिला, हालांकि आपके कोड में यह ब्राउज़र में प्रिंट करता है और कंसोल नहीं। मुझे पता चला कि परिणाम में इसे कैसे वापस किया जाए। हालांकि। धन्यवाद! –

2

क्या मेरे लिए काम किया है एक नया में localStorage डंपिंग है के साथ बातचीत करने के लिए "अमल" आदेश का उपयोग करने की आवश्यकता है ऑब्जेक्ट, अन्यथा यह एक खाली सरणी देता है। इस तरह यह नाइटवॉच भूमि में वापस पढ़ने योग्य है:

client 
    .url('http://yahoo.com') 
    .execute(() => Object.assign({}, localStorage), [], (result) => { 
    console.log(result.value) 
    }) 
संबंधित मुद्दे