Jump to content
DavidLago

[SOLVED] Help with Interaction with IE

Recommended Posts

Hello.

I'd like to ask some help with IE interaction.

Basically, My script opens a webpage, then checks for an expected form named login and passwd:

; Collects info from the opened page
$oForms = _IEFormGetCollection($oIE)
Local $iNumForms = @extended
If $iNumForms = 1 Then
    $oForm = _IEFormGetCollection($oIE, 0)
    $oObjs = _IEFormElementGetCollection($oForm)
    Local $iNumObj = @extended
Else
    ; insert error treatment here
    Exit
EndIf



If $iNumObj = 3 Then ; Check if there are 3 objects in the page (login / pass / submit)
    Sleep(1000) ; Emulating a user typing infos
    $oObj = _IEFormElementGetObjByName($oForm, "login")
    _IEFormElementSetValue($oObj, "barackobama")  
    Sleep(1000) ; Emulating the user
    $oObj = _IEFormElementGetObjByName($oForm, "passwd")
    _IEFormElementSetValue($oObj, "UncleSam2015") 
    Sleep(1000) ; Emulating the user
    _IEFormSubmit($oForm)
Else
    ; insert error treatment here
    Exit
EndIf

It goes to a loading screen, it usually takes 2-10 seconds. Then, it goes to a main screen dashboard.

The ElementGetObjByName gets this info from the page:

<input class="CTXMSAM_ContentFont" type="Password" title="Enter password" name="passwd" size="30" maxlength="127" style="width:100%;">

I need to verify if it really logs in (kinda worked around this), and how long it takes to load the main screen (that classic loading spinning ball).

I was trying to do it by counting the forms or objects, but it's not possible, since there is no forms on the main screen, and both the loading screen and the main screen has 1 object. The main screen though, has an object already identifier (searchbox), but it also doesn't have a name. The code of the searchbox is as below:

<input class="searchbox-textbox lighttext" type="text" autocomplete="off" title="Search">

Is there any way for me to track/identify this page with or without IE.au3?

Thanks.

 

Edited by DavidLago

Just a server analyst that has never been into programming that much. So, small fish here :)

Share this post


Link to post
Share on other sites

Well,

Fixed it with this: 

 

$WhileT2 = False
$timeLogIn = ""

While $WhileT2 = False
    Local $sInfo = ""
    Sleep(500)
    Local $oImg = _IEImgGetCollection($oIE, 1)
    Local $sInfo = $oImg.src
    If $sInfo <> ".../uiareas/Store/media/DownArrow.png" Then
        $timeLogIn = $timeLogIn + 0.5 ; use timeinit and diff later
        if $timeLogIn > 10 Then MsgBox(16, "Error", $timeLogIn)
    Else
        $WhileT2 = True
        MsgBox(64, $timeLogIn, $sInfo) ; test
    EndIf
WEnd

 


Just a server analyst that has never been into programming that much. So, small fish here :)

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

  • Similar Content

    • By SkysLastChance
      I am pretty sure the site that I am using was updated and now I am not seeing the same tags/elements that I used to. I tried using a UIAspy to see if I could grab them that way with no luck. 
      What do I need to do to be able to automate this again. Are the elements hidden somewhere?
      Instead of highlighting established account is highlights all of the web page almost. How can I get to the detail again? 
      I used to grab establish account by the name. Now I have nothing to even try to grab. 
      There are not elements in the event viewer either. 
       


       
      This is what happens when I try to inspect the element and click established account. 
      I get the same type of results in chrome
    • By Seminko
      Hey there,
      below function returns an "object collection" (not sure if that's the correct term) of 'a' elements grabbed from within //*[@id="J_DetailMeta"].
      However, I need the returned collection not to include objects with 'aria-disabled = true'. Is there a way of removing specific objects from such a collection?
      Func GetObjectList($sPicker) $oDetailMeta = _IEGetObjById($oIE, "J_DetailMeta") If Not @error Then $tags = $oDetailMeta.GetElementsByTagName("ul") For $tag in $tags $data_ID_value = $tag.GetAttribute("data-property") If $sPicker = "color" Then If $data_ID_value = '????' Or $data_ID_value = "????" Then $oReturnList = $tag.GetElementsByTagName("a") EndIf ElseIf $sPicker = "network" Then If $data_ID_value = '????' Then $oReturnList = $tag.GetElementsByTagName("a") EndIf ElseIf $sPicker = "storage" Then If $data_ID_value = '????' Then $oReturnList = $tag.GetElementsByTagName("a") EndIf EndIf Next EndIf Return $oReturnList EndFunc $oColorList = GetObjectList("color") For $oColor In $oColorList If StringInStr($oColor.GetAttribute("aria-disabled"), "true") <= 0 Then ; remove object from the collection ??? EndIf Next  
    • By yffulf
      Is there probably a way to click ie popup button and hide or invisible popup button in the same time?
      I try to use WinSetState @SW_hide ,
      the result is ie crashing or no response because button hide and the next click command won't work...
      $oForm=_IEFormGetObjByName($oIE,"form1") $obutton=_IEFormElementGetObjByName($oForm,"btn_OK") $hWnd = _IEPropertyGet($oIE, "hwnd") _IEAction($obutton,"focus") ControlSend($hWnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}") WinWait("", "確定存檔嗎?") WinSetState("","確定存檔嗎?",@SW_Hide) ControlClick("", "確定存檔嗎?", "[CLASS:Button; TEXT:確定; Instance:1;]")  
    • By _leo_
      Hey there!
      I am having a problem with clicking a button in IE. As you can see in the code, there would be a class name to click it, but since this button exists several times with exactly the same code, I can only use the "Noch nicht veröffentlicht" to separate it from the others. But this part is just pure text without any classification. 
      "<div class="checkmark" data-v-1e5b1f70=""><svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 16 16" data-v-1e5b1f70=""><circle cx="8" cy="8" r="8" data-v-1e5b1f70="" /></svg></div>Noch nicht veröffentlicht"
      I was trying to click it with:
      #include <IE.au3> local $oNNVs = _IEFormGetCollection($oIE2) For $oNNV in $oNNVs If String($oNNV.innertext) = "Noch nicht veröffentlicht" Then _IEAction($oNNV, "click") EndIf Next and:
      $inputs = $oIE2.document.getElementsByTagName("div") For $input In $inputs If $input.innertext == "Noch nicht veröffentlicht" then $input.click() EndIf Next But nothing seems to work. Thanks for the help!
    • By TXTechie
      Hello Everyone,
      I'm looking for a way to use an already open Internet Explorer (IE) window (if one is up and running) and then navigate to a new URL in a new IE tab.
      I thought that _IECreate would easily meet my needs. However, when I use the following script:
      #include <IE.au3> Local $oIE = _IECreate("https://" & $Server & ":8444/", 1, 1, 0, 1) ...with one or more open IE windows, it still opens yet a new IE window.
      Are there any other ideas for how to reliably use an already open IE windows and then how to open a new tab in IE to navigate to a new URL?
      Regards,
      TX Techie
×
×
  • Create New...