/ / WIN32OLERuntimeError: występuje podczas uzyskiwania dostępu do ukrytego pola tekstowego za pomocą narzędzia Watir Script.how, aby go pokonać? - watir

WIN32OLERuntimeError: występuje podczas dostępu do ukrytego pola tekstowego za pomocą Watir Script.how, aby go pokonać? - Watir

To jest błąd, który pojawia się, gdy próbuję uzyskać dostęp do ukrytego pola tekstowego na stronie internetowej. Poruszam się po stronie za pomocą

irb (main): 184: 0> browser.text_fields [1] .set "Hey man"

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>"

Z góry dziękuję!!!

Odpowiedzi:

1 dla odpowiedzi № 1

Jak pracujesz z tym polem tekstowym, gdy ręcznie używasz przeglądarki?

Najpierw należy uruchomić zdarzenie, które powoduje, że pole tekstowe jest widoczne. Następnie możesz wpisać tekst w polu tekstowym za pomocą wypróbowanego kodu.


0 dla odpowiedzi nr 2

Jeśli spojrzysz na ślad, dzieje się tak, ponieważ próbujesz zaktualizować nieedytowalne lub niewidoczne pole. Jeśli używasz Watir „Classic” (tylko IE), możesz napisać:

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

jednak jeśli używasz innej przeglądarki / sterownika, która również nie działa. W ukrytych / nieedytowalnych polach przeglądarki musisz użyć javascript:

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

Irytujące, ale ma sens, ponieważ nie jest edytowalne przez użytkownika, a następnie nie można go ustawić za pomocą klawiatury.