/ / WIN32OLERuntimeError: इसे दूर करने के लिए Watir Script.how का उपयोग करते हुए एक छिपे हुए टेक्स्टबॉक्स तक पहुँचने के दौरान होता है? - वतीर

WIN32OLERuntimeError: इसे दूर करने के लिए Watir Script.how का उपयोग करके एक छिपे हुए टेक्स्टबॉक्स तक पहुंचते समय होता है? - वॉटर

यह वह त्रुटि है जो मुझे तब मिलती है जब मैं वेबपेज में छिपे हुए टेक्स्टफील्ड को एक्सेस करने की कोशिश करता हूं। मैं पेज का उपयोग करके नेविगेट कर रहा हूं

irb (मुख्य): 184: 0> browser.text_fields [1] .सेट "हे मैन"

WIN32OLERuntimeError: (in OLE method "focus": )
OLE error code:800A083E in htmlfile
Can"t move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus. HRESULT error code:0x80020009 Exception occurred. from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.0.0/lib/watir-classic/input_elements.rb:294:in "method_missing" from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.0.0/lib/watir-classic/input_elements.rb:294:in "set" from (irb):184 from C:/Ruby193/bin/irb:12:in "main>"

अग्रिम में धन्यवाद!!!

उत्तर:

उत्तर № 1 के लिए 1

जब आप मैन्युअल रूप से ब्राउज़र का उपयोग करते हैं तो आप उस टेक्स्ट फ़ील्ड के साथ कैसे काम करते हैं?

आपको पहले उस इवेंट को ट्रिगर करना होगा जो टेक्स्ट फ़ील्ड को दिखाई देता है। फिर आप जिस कोड की कोशिश करते हैं उसका उपयोग करके टेक्स्ट फ़ील्ड में इनपुट कर सकते हैं।


जवाब के लिए 0 № 2

यदि आप ट्रेस देखते हैं, तो ऐसा इसलिए होता है क्योंकि आप एक गैर-संपादन योग्य या अदृश्य क्षेत्र को अपडेट करने का प्रयास कर रहे हैं। यदि आप Watir "Classic" (केवल IE) का उपयोग कर रहे हैं, तो आप लिख सकते हैं:

require "watir"
.
.
.
browser.text_fields[1].value = "Hey man"

हालाँकि यदि आप अन्य ब्राउज़र / ड्राइवर का उपयोग कर रहे हैं जो "t work न तो जीता है। ब्राउज़र में छिपे / गैर-संपादन योग्य फ़ील्ड में आपको ऐसा करने के लिए जावास्क्रिप्ट का उपयोग करना होगा:

 browser.execute_script("var elem = document.getElementById("your_textfield_id"); elem.value = "Hey man";")

कष्टप्रद, लेकिन समझ में आता है क्योंकि यह उपयोगकर्ता द्वारा संपादन योग्य नहीं है, फिर कीबोर्ड का उपयोग करके "टी" सेट किया जा सकता है।