यह वह त्रुटि है जो मुझे तब मिलती है जब मैं वेबपेज में छिपे हुए टेक्स्टफील्ड को एक्सेस करने की कोशिश करता हूं। मैं पेज का उपयोग करके नेविगेट कर रहा हूं
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";")
कष्टप्रद, लेकिन समझ में आता है क्योंकि यह उपयोगकर्ता द्वारा संपादन योग्य नहीं है, फिर कीबोर्ड का उपयोग करके "टी" सेट किया जा सकता है।