Jump to content
Sign in to follow this  
Seminko

[SOLVED*] IE Set value in an input without a form tag

Recommended Posts

Seminko

Hey,

i would like to set a value into an INPUT field.

Checked the _IEFormElementSetValue function but that does require _IEFormGetObjByName and this is where the problem comes in. The input field I want to write to is not a part of a form tag. It is part of a table.

<input type="text" class="w2" id="nabidka_vozidel_formular_tach_od" name="nabidka_vozidel_formular_tach_od" onchange="GLOBAL.pocetInzerceNZ(&quot;nabidka_vozidel_formular&quot;,&quot;tach_od&quot;,&quot;&quot;);" autocomplete="off">

I tried this but that didn't work:

$oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od")
_IEFormElementSetValue($oDownloadSamples, "123")

If you want to try the site I'm working with is https://www.tipcars.cz/. There is a menu on the top left hand side and if you click the "vyhledat" button the input fields will show up.

Thanks

Edited by Seminko

Share this post


Link to post
Share on other sites
SmOke_N

Look at _IEPropertySet outertext


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites
Seminko
1 hour ago, SmOke_N said:

Look at _IEPropertySet outertext

Error from function _IEPropertySet, $_IESTATUS_InvalidObjectType which is strange since <input type="text"

 

Strange, tried that again and no error appeared but the text wasn't written either.

Here's the code

#include <IE.au3>
#include <INet.au3>

$url = "https://www.tipcars.com/"
$oIE = _IECreate($url)
_IELoadWait($oIE)

$SearchButton = _IEGetObjById($oIE,"homepage_vyhl_frm_vyhledej")
_IEAction($SearchButton, "click")
_IELoadWait($oIE)
; INCORRECT: $oDownloadSamples = _IEGetObjById($oIE, "homepage_vyhl_frm_rok_od")
$oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od")
_IEPropertySet($oDownloadSamples, "outertext", "123")

 

Edited by Seminko

Share this post


Link to post
Share on other sites
Seminko

Strange, _IEAction($oDownloadSamples, "focus") doesn't work either. HELP!

Share this post


Link to post
Share on other sites
Seminko
11 minutes ago, Danp2 said:

Are you sure that this is the correct element? When I look at the source, this appears to be a Select element, not an input element.

The code is "wrong", i used different input field. Let's stick with "nabidka_vozidel_formular_tach_od" from the original post.

#include <IE.au3>
#include <INet.au3>

$url = "https://www.tipcars.com/"
$oIE = _IECreate($url)
_IELoadWait($oIE)

$SearchButton = _IEGetObjById($oIE,"homepage_vyhl_frm_vyhledej")
_IEAction($SearchButton, "click")
_IELoadWait($oIE)
$oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od")
_IEPropertySet($oDownloadSamples, "outertext", "123")

 

Edited by Seminko

Share this post


Link to post
Share on other sites
Danp2
22 minutes ago, Seminko said:

The code is "wrong", i used different input field. Let's stick with "nabidka_vozidel_formular_tach_od":

Sorry, but that doesn't make sense to me. If you are switching target elements where the element type is different (input vs select), then why would you expect the method to update the element to remain the same?

Share this post


Link to post
Share on other sites
Seminko
1 minute ago, Danp2 said:

Sorry, but that doesn't make sense to me. If you are switching target elements where the element type is different (input vs select), then why would you expect the method to update the element to remain the same?

Disregard "homepage_vyhl_frm_rok_od". That was a missclick. I copied part of my previous code where I actually wanted to control a select element.

However, "nabidka_vozidel_formular_tach_od" is not a select element or at least not that I can see. It says Input type="Text". And this is what I neet to put numbers in.

Share this post


Link to post
Share on other sites
Danp2

It appears to work after adding in a Sleep command to allow the page to fully load --

#include <IE.au3>
#include <INet.au3>

$url = "https://www.tipcars.com/"
$oIE = _IECreate($url)
_IELoadWait($oIE)

$SearchButton = _IEGetObjById($oIE,"homepage_vyhl_frm_vyhledej")
_IEAction($SearchButton, "click")
_IELoadWait($oIE)

sleep(2000)

$oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od")
_IEFormElementSetValue($oDownloadSamples, "123")

 

  • Like 1

Share this post


Link to post
Share on other sites
Seminko
14 minutes ago, Danp2 said:

It appears to work after adding in a Sleep command to allow the page to fully load --

I was just writing a comment about the possibility of the site not being properly loaded despite _IELoadWait($oIE) when you replied  :). I tried _IEFormElementSetValue right in the beginning but it didn't work so I assumed it's not the correct function.

It works now! Thanks!

I have no idea but I assume _IELoadWait($oIE) doesn't work because the site is not loading per se but a script is being started. Do we know of any other method other than _IELoadWait($oIE) that would wait for it to properly finish? I would like to avoid hardcoding a Sleep function.

 

Well this works, but the issue is that if the site changes the IDs this will loop indefinitely.

#include <IE.au3>
#include <INet.au3>

$url = "https://www.tipcars.com/"
$oIE = _IECreate($url)
_IELoadWait($oIE)

$SearchButton = _IEGetObjById($oIE,"homepage_vyhl_frm_vyhledej")
_IEAction($SearchButton, "click")
_IELoadWait($oIE)

$oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od")
While @error
    Sleep(100)
    $oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_od")
WEnd

_IELoadWait($oDownloadSamples)

_IEFormElementSetValue($oDownloadSamples, "123")

$oDownloadSamples = _IEGetObjById($oIE, "nabidka_vozidel_formular_tach_do")
_IEFormElementSetValue($oDownloadSamples, "321")

 

Edited by Seminko

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • SkysLastChance
      By SkysLastChance
      I was wondering how I read data inside of a iframe. I would like to be able to click something inside a iframe. However, I can't even find the tag. 
      The id and name change all the time so I can't use those. 
      The code highlighted in blue is what I am trying to click. (second picture)
      Here is what I have tried.
      $target = "" $tags = $oIE.document.GetElementsByTagName("div") For $tag in $tags $class_value = $tag.GetAttribute("class") If string($class_value) = "s_92 altstyle s_93 s_94" Then $target = $tag ConsoleWrite("Tag Found " & $target.outerText&@CRLF) ExitLoop EndIf Next  

       
       

    • SkysLastChance
      By SkysLastChance
       
      WinActivate("MEDITECH - Internet Explorer") Sleep (500) $oIE = _IEAttach("MEDITECH") $oDiv1 = _IEGetObjById($oIE, "sysmenu-searchbarbutton") _IEAction($oDiv1, "click") I am just trying to click the little magnifying glass, next to the gear button with no luck. I was hoping someone might have an idea why this is not working?
       

    • SkysLastChance
      By SkysLastChance
      I am trying to type a name in patient summary search box. How should I go about doing this. I am clearly not doing it right. (Attached Picture of HTML code.)
      This is what I have tried. I assume this is not working because it is not a form? 
      WinActivate("MEDITECH - Internet Explorer")       Sleep (500)    $oIE = _IEAttach("MEDITECH")    $oForm = _IEFormGetObjByName($oIE, "systemMenu")    $oText = _IEFormElementGetObjByName($oForm, "sysmenu-searchbarinput") _IEFormElementSetValue($oText, "Hey! This works!")
    • aiter
      By aiter
      Just want to report a warning I get when using IE udf and running from F5 in scite

      -> IE.au3 T3.0-2 Warning from function internal function __IEIsObjType, Cannot register internal error handler, cannot trap COM errors (Use _IEErrorHandlerRegister() to register a user error handler)
      When I look at IE.au3 I see a comment that this function has been removed as there are no more fatal errors.
       
    • aiter
      By aiter
      I created a webpage using the IE udf. Great, but then I noticed I cannot do a ctrl-F to find something on the page. 
      If I save the page then bring that page up I can find things of course.
      Its trivial really, but is there way to get the ctrl-F to work when the page is generated without resorting to having to save?
×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.