Getting an empty JavaScript Array in Java (Selenium test) -
मुझे जावा चर में जावास्क्रिप्ट स्क्रिप्ट में घोषित एक रिक्त अरणी प्राप्त करने की आवश्यकता है।
जावास्क्रिप्ट सरणी को एक वेब पेज पर घोषित किया जाता है:
tc_vars ["products"] = नया अर्रे ();
(मुझे केवल उत्पादों
की सरणी की आवश्यकता है, न कि tc_vars
एक)।
यह है मैं जावा में इस चर को कैसे प्राप्त करने की कोशिश करता हूं:
वस्तु [] मान = (ऑब्जेक्ट []) js.executeScript ("return tc_vars ['products'];");
(जहां जेएस
एक सेलेनियम WebDriver
से संबद्ध एक जावास्क्रिप्ट एक्सक्लूसेटर
है)।
executeScript
विधि एक ऑब्जेक्ट
चर देता है यह एक स्ट्रिंग
(जब जेएस चर एक स्ट्रिंग है) में कास्ट करता है, लेकिन यह खाली ऐरे को स्ट्रिंग []
या ऑब्जेक्ट में कास्ट करने में कोई मौका नहीं था []
।
जैसा कि मैंने अपनी टिप्पणी में बताया है, आपको यह सुनिश्चित करना होगा कि वास्तव में आप उस बिंदु पर tc_vars ['उत्पाद']
तक पहुंच है, जिसे आप परीक्षण करना चाहते हैं। उदा।, मैन्युअल रूप से एक ब्राउज़र खोलें, उस पृष्ठ में बिंदु पर जाएं जहां आप सेलेनियम का उपयोग करते हुए उस मान के लिए पूछें, खुले devtools javascript कंसोल और tc_vars के मूल्य की जांच करें। यदि यह आपके लिए उपलब्ध नहीं है, तो यह सेलेनियम वेबड्रिवर के लिए उपलब्ध नहीं होगा।
दूसरी बात यह है कि एरे के लिए, सेलेनियम वेबड्रिवर (कम से कम नवीनतम संस्करण: 2.42.2) ArrayList & lt ; ऑब्जेक्ट & gt;
और नहीं वस्तु []
। इसलिए आपकी कास्ट होना चाहिए:
ArrayList & lt; ऑब्जेक्ट & gt; ओ = (अर्रेलिस्ट & लेफ्टिनेंट; ऑब्जेक्ट & gt;) js.executeScript ("वापसी टीसी_विर्स ['उत्पाद'];");
Comments
Post a Comment