​IE Link​ Click​ über den Namen

  • Hallo,
    um die Stabilität von Webseite testen zu können will ich ein Script schreiben welches einfach eine Liste von Links über die Beschriftungen immer wieder nacheinander aufruft. Das folgende Script funktioniert auch soweit.

    Leider Habe ich jetzt aber eine Webseite bei der dies nicht funktioniert und einfach nichts passiert. Wenn ich mir den Quelltext ansehe finde ich folgende Definitionen für die Links:

    HTML
    <span class="menu-item-text">Default Documents</span>
    <span class="ms-splinkbutton-text">Site Content</span>
    <a class="ctl00_PlaceHolderLeftNavBar_WebTreeViewV4_0 ms-tv-item ctl00_PlaceHolderLeftNavBar_WebTreeViewV4_1" href="javascript:_spNavigateHierarchy(this,'TreeViewDataSourceV4','30:ListNode:49ceda52-649f-4c3f-967e-0ace641fef0e:d1f92c94-8292-4519-94c3-c8b6d77411ea:31c61d21-7db8-4f88-9646-67250358b0cd','\u002fDefault Documents',false,'ListNode')" title="Default Documents" id="ctl00_PlaceHolderLeftNavBar_WebTreeViewV4t4" style="border-style:none;font-size:1em;">Default Documents</a>

    Scheinbar basieren die Links irgendwie auf Java. Gibt es eine Möglichkeit auch an solche Links zu kommen.


    Gruß Ingo

  • Hallo,
    vielen Dank für die Info!

    Aber ich habe ja nur den Titel des Links, wie kann ich denn über den Titel den notwendigen Übergabewert für _IENavigate ermitteln.

    Gruß Ingo

  • Mit regexp recht einfach:

    AutoIt
    #include <array.au3>
    $text='<span class="menu-item-text">Default Documents</span>'& _
    	  '<span class="ms-splinkbutton-text">Site Content</span>'& _
    	  '<a class="ctl00_PlaceHolderLeftNavBar_WebTreeViewV4_0 ms-tv-item ctl00_PlaceHolderLeftNavBar_WebTreeViewV4_1" href="javascript:_spNavigateHierarchy(this,'&"'"& _
    	  'TreeViewDataSourceV4'&"'"&','&"'"&'30:ListNode:49ceda52-649f-4c3f-967e-0ace641fef0e:d1f92c94-8292-4519-94c3-c8b6d77411ea:31c61d21-7db8-4f88-9646-67250358b0cd'&"'"& _
    	  ','&"'"&'\u002fDefault Documents'&"'"&',false,'&"'"&'ListNode'&"'"&')" title="Default Documents" id="ctl00_PlaceHolderLeftNavBar_WebTreeViewV4t4" style="border-style:none;font-size:1em;">Default Documents</a>'
    _ArrayDisplay(StringRegExp($text,'href="(.*?)" title="Default Documents"',3))
    if @error Then	msgbox(48,"",@error)
  • Hallo Kanashius,
    das kommt ja gut. Jetzt habe ich natürlich noch das Problem, dass ich den Inhalt von $text ja per Hand aus dem Code der Webseite gefischt habe. Gibt es eine Möglichkeit dies über das Objekt was ich mit (oder ein anderes Objekt):
    $oLinks = _IELinkGetCollection($oIE)
    bekomme an den Text für $text zu bekommen?

    Was ich von der Funktion _IELinkGetCollection($oIE) bekomme ist ja ein Objekt auf $oIE.document.links. Dort sind aber scheinbar keine Java Objekte enthalten, oder ich bin zu blöd da ran zu kommen.


    Gruß Ingo

  • Wie hast du denn den Quelltext ausgelesen?
    Hast du mal im Firefox das Plugin Firebug benutzt oder im IE11 mit der F12 Taste?

    Damit arbeite ich immer, wenn es um das auslesen geht und da siehst du ja dann genau, ob dahinter eine andere Scriptsprache steckt ..

    _IELinkClickByText ($oIE, "Link_Text")

    Gruß gmmg