2014-04-28 14 views
6

मैं प्रोटैक्टर में सत्र स्टोरेज चर का मूल्य कैसे प्राप्त करूं? मैंने कोशिश की:प्रोटैक्टर: सत्र स्टोरेज वेरिएबल्स

browser.executeScript('sessionStorage.getItem("login");'); 

लेकिन वह अशक्त देता है। SessionStorage.getItem() का उपयोग ब्राउज़र.executeScript() के बिना sessionStorage के लिए एक अपरिभाषित करता है।

+0

मैं भी इस आवश्यकता के साथ जूझ रहा हूँ। यदि आपको कोई समाधान मिल गया है तो कृपया मुझे बताएं ... – zpydee

उत्तर

4

browser.driver.executeScript के बजाय browser.executeScript

प्रयास करें अर्थात

browser.driver.executeScript('sessionStorage.getItem("login");'); 

भी मैन्युअल रूप से पुष्टि करें कि आपका जावास्क्रिप्ट अभिव्यक्ति sessionStorage.getItem("login");browser developer tools का उपयोग करके ठीक काम करता है।

आपके ऐप और वहां पहुंचने के लिए आप जो कदम उठा रहे हैं उसके आधार पर, यह सत्र संग्रहण आइटम का जल्द ही अनुरोध कर रहा है। यदि browser.driver.executeScript आपकी समस्या को ठीक नहीं करता है तो यह पता लगाने के लिए executeScript से पहले browser.sleep(4000); जोड़ने का प्रयास करें।

नोट executeScriptreturns a webdriver promise तो जब तक आप लपेटकर रहे हैं एक expect में आप इस आवश्यकता हो सकती है कि:

browser.sleep(2000); 
browser.driver.executeScript('sessionStorage.getItem("login");').then(function(retValue) { 
    console.log(retValue); 
}); 
+0

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

5

यह सोचा बाहर।

browser.executeScript("return window.sessionStorage.getItem('login');"); 
0

यह बिल्कुल ठीक नहीं है। यह होना चाहिए ...

browser.driver.executeScript('return window.sessionStorage.getItem("login");').then(function (retVal) { 
 
    console.log(retVal); 
 
});

संबंधित मुद्दे