एलीमेंट ऑब्जेक्ट
एक एलिमेंट ऑब्जेक्ट एक ऑब्जेक्ट है जो रिमोट यूजर एजेंट पर एक एलिमेंट का प्रतिनिधित्व करता है, उदाहरण के लिए एक DOM नोड जब एक ब्राउज़र के भीतर सत्र चल रहा हो या एक मोबाइल एलिमेंटमोबाइल के लिए। इसे कई एलिमेंट क्वेरी कमांड में से एक का उपयोग करके प्राप्त किया जा सकता है, उदाहरण के लिए $
, Custom$
, react$
या shadow$
।
विशेषताएं
एक तत्व वस्तु में निम्नलिखित गुण होते हैं:
नाम | प्रकार | विवरण |
---|---|---|
sessionId | String | दूरस्थ सर्वर से निर्दिष्ट सत्र आईडी। |
elementId | String | संबद्ध वेब तत्व संदर्भ जिसका उपयोग प्रोटोकॉल स्तर पर तत्व के साथ इंटरैक्ट करने के लिए किया जा सकता है |
selector | String | चयनकर्ता तत्व को क्वेरी करने के लिए प्रयोग किया जाता है। |
parent | Object | या तो ब्राउज़र ऑब्जेक्ट जब तत्व इससे प्राप्त किया गया था (उदाहरण के लिए cconst elem = browser.$('selector') ) या एक तत्व ऑब्जेक्ट यदि यह किसी तत्व दायरे से प्राप्त किया गया था (उदाहरण के लिए elem.$( 'selector') ) |
options | Object | WebdriverIO विकल्प ब्राउज़र ऑब्जेक्ट कैसे बनाया गया था इसके आधार पर। अधिक सेटअप प्रकार देखें। |
विधियां
एक एलिमेंट ऑब्जेक्ट प्रोटोकॉल सेक्शन से सभी तरीके प्रदान करता है, उदाहरण के लिए वेबड्राइवर प्रोटोकॉल और साथ ही एलिमेंट सेक्शन में सूचीबद्ध कमांड। उपलब्ध प्रोटोकॉल कमांड सत्र के प्रकार पर निर्भर करते हैं। यदि आप एक स्वचालित ब्राउज़र सत्र चलाते हैं, तो Appium कमांड में से कोई भी उपलब्ध नहीं होगा और इसके विपरीत।
इसके अतिरिक्त निम्नलिखित आदेश उपलब्ध हैं:
नाम | पैरामीटर | विवरण |
---|---|---|
addCommand | - commandName (Type: String )- fn (Type: Function ) | Allows to define custom commands that can be called from the browser object for composition purposes. कस्टम कमांड गाइड में और पढ़ें। |
overwriteCommand | - commandName (Type: String )- fn (Type: Function ) | Allows to overwrite any browser command with custom functionality. सावधानी से उपयोग करें क्योंकि यह फ्रेमवर्क उपयोगकर्ताओं को भ्रमित कर सकता है। कस्टम कमांड गाइड में और पढ़ें। |
टिप्पणियां
तत्व श्रृंखला
तत्वों के साथ काम करते समय WebdriverIO उन्हें क्वेरी करने और समग्र जटिल नेस्टेड तत्व लुकअप को आसान बनाने के लिए विशेष सिंटैक्स प्रदान करता है। जैसा कि तत्व ऑब्जेक्ट आपको सामान्य क्वेरी विधियों का उपयोग करके उनकी पेड़ की शाखा के भीतर तत्वों को खोजने की अनुमति देता है, उपयोगकर्ता नेस्टेड तत्वों को निम्नानुसार प्राप्त कर सकते हैं:
const header = await $('#header')
const headline = await header.$('#headline')
console.log(await headline.getText()) // outputs "I am a headline"
गहरी नेस्टेड संरचनाओं के साथ किसी भी नेस्टेड तत्व को सरणी में असाइन करने के लिए इसका उपयोग करना काफी वर्बोज़ हो सकता है। इसके लिए WebdriverIO में श्रृंखलित तत्व प्रश्नों की अवधारणा है जो इस तरह से नेस्टेड तत्वों को लाने की अनुमति देती है:
console.log(await $('#header').$('#headline').getText())
यह तत्वों का एक सेट लाते समय भी काम करता है, उदाहरण के लिए:
// get the text of the 3rd headline within the 2nd header
console.log(await $$('#header')[1].$$('#headline')[2].getText())
तत्वों के एक सेट के साथ काम करते समय यह उनके साथ बातचीत करने की कोशिश करते समय विशेष रूप से उपयोगी हो सकता है, इसलिए ऐसा करने के बजाय:
const elems = await $$('div')
const locations = await Promise.all(
elems.map((el) => el.getLocation())
)
आप तत्व श्रृंखला पर सीधे ऐरे विधियों को कॉल कर सकते हैं, उदाहरण के लिए:
const location = await $$('div').map((el) => el.getLocation())
WebdriverIO uses a custom implementation that supports asynchronous iteratiors under the hood so all commands from their API are also supported for these use cases.
कस्टम कमांड
आप आमतौर पर उपयोग किए जाने वाले वर्कफ़्लोज़ को अलग करने के लिए ब्राउज़र स्कोप पर कस्टम कमांड सेट कर सकते हैं। अधिक जानकारी के लिए कस्टम कमांड पर हमारी मार्गदर्शिका देखें।