[javascript] जावास्क्रिप्ट अनुकरण कोड के माध्यम से दायाँ क्लिक करें



Answers

बस अच्छे उपाय के लिए, पैरामीटर पर डॉको का थोड़ा सा है:

var myEvt = document.createEvent('MouseEvents');
myEvt.initMouseEvent(
   'click'          // event type
   ,true           // can bubble?
   ,true           // cancelable?
   ,window      // the event's abstract view (should always be window)
   ,1              // mouse click count (or event "detail")
   ,100           // event's screen x coordinate
   ,200           // event's screen y coordinate
   ,100           // event's client x coordinate
   ,200           // event's client y coordinate
   ,false         // whether or not CTRL was pressed during event
   ,false         // whether or not ALT was pressed during event
   ,false         // whether or not SHIFT was pressed during event
   ,false         // whether or not the meta key was pressed during event
   ,1             // indicates which button (if any) caused the mouse event (1 = primary button)
   ,null          // relatedTarget (only applicable for mouseover/mouseout events)
); 
Question

मैं सेलेनियम का उपयोग करके कुछ यूआई परीक्षण लिख रहा हूं और मेरे पास दोजो टूलकिट का उपयोग करके जावास्क्रिप्ट ट्री कंट्रोल है।

मैंने दोजो प्रदान किए गए उदाहरणों का उपयोग करके पेड़ के प्रत्येक नोड के लिए एक संदर्भ मेनू लागू किया है, लेकिन मुझे पेले नोड पर राइट क्लिक करने के लिए सेलेनियम परीक्षण की आवश्यकता है, लेकिन मैं इसे काम पर नहीं ला सकता। परीक्षण केवल जावास्क्रिप्ट के माध्यम से राइट-क्लिक ईवेंट अनुकरण नहीं करते हैं, और संदर्भ मेनू दिखाई नहीं देता है।

क्या किसी को Dojo और सेलेनियम का उपयोग कर संदर्भ मेनू पर राइट क्लिक का आह्वान करने में कोई अनुभव है? या इसके बारे में कोई विचार है कि इसे कैसे करें?




अगर आपको कोई परवाह नहीं है कि संदर्भ मेनू कहां से निकाल दिया गया है, तो यहां एक और सही संस्करण है

function fireContextMenu(el) {
  var evt = el.ownerDocument.createEvent("HTMLEvents")
  evt.initEvent('contextmenu', true, true) // bubbles = true, cancelable = true

  if (document.createEventObject) {
    return el.fireEvent('oncontextmenu', evt)
  }
  else {
    return !el.dispatchEvent(evt)
  }
}

यदि आप करते हैं, तो हमें पिछले एक का उपयोग करना होगा, आईई में इसका व्यवहार ठीक करना होगा, और स्क्रीनएक्स, स्क्रीनवाई, क्लाइंटएक्स, क्लाइंटवाई आदि को उचित रूप से पॉप्युलेट करना होगा




Related