एक्शन
एक्शन कमांड वेब ब्राउज़र को वर्चुअलाइज्ड डिवाइस इनपुट क्रियाएँ प्रदान करने के लिए एक निम्न-स्तरीय इंटरफेस है।
scrollIntoView
, doubleClick
जैसे उच्च स्तरीय कमांड्स के अलावा, एक्शन्स API नामित इनपुट डिवाइसेज़ के सटीक नियंत्रण का विस्तृत विकल्प प्रदान करता है। WebdriverIO 3 प्रकार के इनपुट सोर्सेज के लिए इंटरफेस प्रदान करता है:
- कीबोर्ड डिवाइसेज के लिए की इनपुट
- माउस, पेन या टच डिवाइसेज के लिए पॉइंटर इनपुट
- और स्क्रॉल व्हील डिवाइसेज के लिए व्हील इनपुट
एक्शन कमांड्स की हर श्रृंखला को क्रियाओं को ट्रिगर करने के लिए perform
कॉल करके पूरा किया जाना चाहिए। इससे एक्शन्स रिलीज़ हो जाते हैं और इवेंट्स फायर होते हैं। आप true
पास करके इसे स्किप कर सकते हैं (जैसे browser.actions(...).perform(true)
)।
की इनपुट सोर्स
की इनपुट सोर्स एक इनपुट सोर्स है जो कीबोर्ड-प्रकार के डिवाइस से जुड़ा हुआ है। इसे key
टाइप पैरामीटर का उपयोग करके ट्रिगर किया जा सकता है। उदाहरण के लिए:
browser.action('key')
यह एक KeyAction
ऑब्जेक्ट रिटर्न करता है जो निम्नलिखित क्रियाओं का समर्थन करता है:
down(value: string)
: की डाउन एक्शन जनरेट करता हैup(value: string)
: की अप एक्शन जनरेट करता हैpause(ms: number)
: इंगित करता है कि एक इनपुट सोर्स एक विशेष टिक के दौरान कुछ नहीं करता है
विशेष अक्षर
अगर आप विशेष अक्षरों जैसे Control
, Page Up
या Shift
का उपयोग करना चाहते हैं, तो सुनिश्चित करें कि आप webdriverio
पैकेज से Key
ऑब्जेक्ट को इम्पोर्ट करें:
import { Key } from 'webdriverio'
यह ऑब्जेक्ट आपको वांछित विशेष अक्षर के यूनिकोड प्रतिनिधित्व तक पहुंचने की अनुमति देता है।
पॉइंटर इनपुट सोर्स
पॉइंटर इनपुट सोर्स एक इनपुट सोर्स है जो पॉइंटर-प्रकार के इनपुट डिवाइस से जुड़ा हुआ है। action
कमांड का उपयोग करते समय प्रकार निर्दिष्ट किया जा सकता है, उदाहरण के लिए:
browser.action('pointer', {
parameters: { pointerType: 'mouse' } // "mouse" डिफॉल्ट वैल्यू है, "pen" या "touch" भी संभव है
})
यह एक PointerAction
ऑब्जेक्ट रिटर्न करता है जो निम्नलिखित क्रियाओं का समर्थन करता है:
down (button: 'left' | 'middle' | 'right')
: एक बटन दबाने के लिए एक्शन बनाता हैdown (params: PointerActionParams)
: विस्तृत पैरामीटर्स के साथ एक बटन दबाने के लिए एक्शन बनाता हैmove (x: number, y: number)
: व्यूपोर्ट सेx
औरy
पिक्सेल दूर पॉइंटर को मूव करने के लिए एक्शन बनाता हैmove (params: PointerActionMoveParams)
: निर्दिष्टorigin
सेx
औरy
पिक्सेल दूर पॉइंटर को मूव करने के लिए एक्शन बनाता है।origin
पॉइंटर की वर्तमान स्थिति (जैसे "pointer"), व्यूपोर्ट (जैसे "viewport") या विशिष्ट एलिमेंट के केंद्र के रूप में परिभाषित किया जा सकता है।up (button: 'left' | 'middle' | 'right')
: एक बटन छोड़ने के लिए एक्शन बनाता हैup (params: PointerActionUpParams)
: विस्तृत पैरामीटर्स के साथ एक बटन छोड़ने के लिए एक्शन बनाता हैcancel()
: इस पॉइंटर के वर्तमान इनपुट को रद्द करने वाला एक्शन।pause(ms: number)
: इंगित करता है कि एक इनपुट सोर्स एक विशेष टिक के दौरान कुछ नहीं करता है
आप PointerActionParams
, PointerActionMoveParams
और PointerActionUpParams
पैरामीटर प्रकारों पर विस्तृत जानकारी प्रोजेक्ट टाइप डेफिनिशन में पा सकते हैं।
व्हील इनपुट सोर्स
व्हील इनपुट सोर्स एक इनपुट सोर्स है जो व्हील-प्रकार के इनपुट डिवाइस से जुड़ा हुआ है।
browser.action('wheel')
यह एक WheelAction
ऑब्जेक्ट रिटर्न करता है जो निम्नलिखित क्रियाओं का समर्थन करता है:
scroll (params: ScrollParams)
: दिए गए कोऑर्डिनेट्स या ओरिजिन पर पेज को स्क्रॉल करता हैpause(ms: number)
: इंगित करता है कि एक इनपुट सोर्स एक विशेष टिक के दौरान कुछ नहीं करता है
आप ScrollParams
पैरामीटर प्रकार पर विस्तृत जानकारी प्रोजेक्ट टाइप डेफिनिशन में पा सकते हैं।
उपयोग
browser.action()
उदाहरण
it('drag and drop using pointer action command', async () => {
const origin = await $('#source')
const targetOrigin = await $('#target')
return browser.action('pointer')
.move({ duration: 0, origin, x: 0, y: 0 })
.down({ button: 0 }) // left button
.pause(10)
.move({ duration: 0, origin: targetOrigin })
.up({ button: 0 })
.perform()
});
import { Key } from 'webdriverio'
it('should emit key events using key action commands', async () => {
const elem = await $('input')
await elem.click() // make element active
await browser.action('key')
.down('f')
.down('o')
.down('o')
.up('f')
.up('o')
.up('o')
.perform()
console.log(await elem.getValue()) // returns "foo"
// copy value out of input element
await browser.action('key')
.down(Key.Ctrl).down('c')
.pause(10)
.up(Key.Ctrl).up('c')
.perform()
})
it('should scroll using wheel action commands', async () => {
console.log(await browser.execute(() => window.scrollY)) // returns 0
await browser.action('wheel').scroll({
deltaX: 0,
deltaY: 500,
duration: 200
}).perform()
console.log(await browser.execute(() => window.scrollY)) // returns 500
})