Jump to content

Search the Community

Showing results for tags 'html'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office


  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office


  • Forum
  • AutoIt


  • Community Calendar

Found 64 results

  1. Is there a way to grab non-hardcoded but rather javascript generated data from a webpage? Tried a get request as well as _IEBodyReadHTML but both seem to grab the code without the javascript generated data. $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("GET", "link", False) $oHTTP.Send() $oReceived = $oHTTP.ResponseText $oStatusCode = $oHTTP.Status Global $DataArray[10][5] If $oStatusCode <> 200 Then Exit MsgBox(1, "Error", "Status Code <> 200") EndIf FileWrite(@ScriptDir & "\output.txt", $oReceived) ; //////// #include <IE.au3> Local $FullLink = "link" Local $oIE = _IECreate($FullLink, 0, 0) _IELoadWait($oIE) Local $sText = _IEBodyReadHTML($oIE) FileWrite(@ScriptDir & "\output.txt", $sText)
  2. 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?
  3. Hello, I have a website with a Google Map I setup using the Google Map API. It works and displays just fine. However to make it useful to me I need to be able to dynamically change the map to display different areas by sending new Latitude and Longitude coordinates. I am having difficulty making this happen. Here is my code thus far: #include <IE.au3> $oIE3 = _IECreate("http://my_sample_website.html") ;just an example, not an actual site... _IELoadWait($oIE3) $s_word = "lat:" $oInputs = _IETagNameAllGetCollection($oIE3) if @error <> 0 Then MsgBox($MB_SYSTEMMODAL, "ERROR", "Error is: " & @error) EndIf ;@error For $oInput In $oInputs if Number($iPos) == -1 Then $iPos = StringInStr($oInput.innerHTML, String($s_word)) if (Number($iPos) > 0) AND (@error == 0) Then ConsoleWrite("I FOUND IT...! " & String($s_word) & @CRLF) $sHTML = _IEBodyReadHTML($oIE3) $_lat_look = 0 $_lng_look = 0 $_end_look = 0 ;default $_lat_look = StringInStr(String($sHTML), "lat:") if Number($_lat_look) <> 0 Then $_lng_look = StringInStr(String($sHTML), "lng:") if Number($_lng_look) <> 0 Then $_end_look = StringInStr(String($sHTML), "}") if Number($_end_look) <> 0 Then ConsoleWrite("HTML BODY: " & $sHTML & @CRLF) $_old_lat = String(StringMid(String($sHTML), $_lat_look, ($_lng_look - $_lat_look))) $_old_lng = String(StringMid(String($sHTML), $_lng_look, ($_end_look - $_lng_look))) ConsoleWrite("$_old_lat: " & $_old_lat & @CRLF) ConsoleWrite("$_old_lng: " & $_old_lng & @CRLF) $_new_lat = "lat: " & String("-34.397") & ", " $_new_lng = "lng: " & String("150.644") & "}; " ConsoleWrite("...new lat is: " & String($_new_lat) & " new lng is: " & String($_new_lng) & @CRLF) $_LOOK = StringReplace($_old_lat, 1, String($_new_lat)) $_LOOK2 = StringReplace($_old_lng, 1, String($_new_lng)) ConsoleWrite("$_LOOK: " & $_LOOK & "$_LOOK2: " & $_LOOK2 & @CRLF) EndIf ;'$_end_look' NOT "0"... $iPos = -1 EndIf ;'String($s_word)' was found in the collection '$oInputs' EndIf ;'$iPos' is "-1" Next I am having trouble trying to replace the line in the HTML ($sHTML variable in my example) that contains the "lat:" and "lng:" information. I figure if I can replace that line everything else remains the same, and in theory, the map should cycle to display a map with the new latitude and longitude coordinates...I hope. I have attempted to write the $sHTML to a text document and then use '_IEBodyWriteHTML' to read it back into the webpage HTML however that is not working. There must be an easier method to accomplish this...what am I missing here...? Any thoughts greatly appreciated. Regards.
  4. Hi everyone. I want to format the output of _INetGetSource to look nice and pretty. Example google.com source output: <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for." name="description"><meta content="noodp" name="robots"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:'DJtTWvCOI6WGjwSE9JrICg',kEXPI:'18167,1354277,1354916,1355218,1355675,1355793,1356171,1356806,1357219,1357326,3700304,3700519,3700521,4003510,4029815,4031109,4043492,4045841,4048347,4081038,4081164,4095909,4096834,4097153,4097195,4097922,4097929,4098733,4098740,4098752,4102237,4102827,4103475,4103845,4106084,4107914,4109316,4109490,4112770,4113217,4115697,4116349,4116724,4116731,4116926,4116927,4116935,4117980,4118798,4119032,4119034,4119036,4120285,4120286,4120660,4121175,4121518,4122511,4123830,4123850,4124091,4124850,4125837,4126202,4126754,4126869,4127262,4127418,4127473,4127744,4127863,4128586,4128622,4129001,4129520,4129556,4129633,4130362,4130783,4131247,4131834,4132956,4133114,4133509,4135025,4135088,4135249,4135934,4136073,4136092,4136137,4137597,4137646,4140792,4140849,4141281,4141707,4141915,4142071,4142328,4142420,4142443,4142503,4142678,4142729,4142829,4142834,4142847,4143278,4143527,4143902,4144442,4144550,4144704,4145074,4145075,4145082,4145088,4145461,4145485,4145622,4145688,4145713,4145836,4146146,4146183,4146874,4147032,4147043,4147096,4147443,4147800,4147951,4148257,4148304,4148436,4148498,4148573,6512220,10200083,10202524,10202562,15807763,19000288,19000423,19000427,19001999,19002287,19002288,19002366,19002548,19002880,19003321,19003323,19003325,19003326,19003328,19003329,19003330,19003407,19003408,19003409,19004309,19004516,19004517,19004518,19004519,19004520,19004521,19004531,19004656,19004668,19004670,19004692,41317155',authuser:0,kscs:'c9c918f0_DJtTWvCOI6WGjwSE9JrICg',u:'c9c918f0',kGL:'US'};google.kHL='en';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(d){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,d,c,g){if(a=google.logUrl(a,b,d,c,g)){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};google.vel&&google.vel.lu&&google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,d,c,g){var e="",f=google.ls||"";d||-1!=b.search("&ei=")||(e="&ei="+google.getEI(c),-1==b.search("&lei=")&&(c=google.getLEI(c))&&(e+="&lei="+c));c="";!d&&google.cshid&&-1==b.search("&cshid=")&&(c="&cshid="+google.cshid);a=d||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+e+f+"&zx="+google.time()+c;/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};}).call(this);(function(){google.y={};google.x=function(a,b){if(a)var c=a.id;else{do c=Math.random();while(google.y[c])}google.y[c]=[a,b];return!1};google.lm=[];google.plm=function(a){google.lm.push.apply(google.lm,a)};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);google.f={};var a=window.location,b=a.href.indexOf("#");if(0<=b){var c=a.href.substring(b+1);/(^|&)q=/.test(c)&&-1==c.indexOf("#")&&a.replace("/search?"+c.replace(/(^|&)fp=[^&]*/g,"")+"&cad=h")};</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important} But I want it outputted like this: <!doctype html> <html itemscope="" itemtype="http://schema.org/WebPage" lang="en"> <head> <meta content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for." name="description"> <meta content="noodp" name="robots"> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"> <title>Google</title> <script> (function() { window.google = { kEI: 'DJtsdfgWGjwSE9JrICg', kEXPI: '18167,1354277,1354916,1355218,1355675,1355793,1356171,1356806,1357219,1357326,37sdfg0304,3700519,3700521,4003510,4029815,4031109,4043492,4045841,4048347,4081038,4081164,4095909,4096834,4097153,4097195,4097922,4097929,4098733,4098740,4098752,4102237,4102827,4103475,4103845,4106084,4107914,4109316,4109490,4112770,4113217,4115697,4116349,4116724,4116731,4116926,4116927,4116935,4117980,4118798,4119032,4119034,4119036,4120285,4120286,4120660,4121175,4121518,4122511,4123830,4123850,4124091,4124850,4125837,4126202,4126754,4126869,4127262,4127418,4127473,4127744,4127863,4128586,4128622,4129001,4129520,4129556,4129633,4130362,4130783,4131247,4131834,413sdfg56,4133114,4133509,4135025,4135088,4135249,4135934,4136073,4136092,4136137,4137597,4137646,4140792,4140849,4141281,4141707,4141915,4142071,4142328,4142420,4142443,4142503,4142678,4142729,4142829,4142834,4142847,4143278,4143527,4143902,4144442,4144550,4144704,4145074,4145075,4145082,4145088,4145461,4145485,4145622,4145688,4145713,4145836,4146146,4146183,4146874,4147032,4147043,4147096,4147443,4147800,4147951,4148257,4148304,4148436,4148498,4148573,6512220,10200083,10202524,10202562,15807763,19000288,190sdfg23,19000427,19001999,19002287,19002288,19002366,19002548,19002880,19003321,19003323,19003325,19003326,19003328,19003329,19003330,19003407,19003408,19003409,19004309,19004516,19004517,19004518,19004519,19004520,19004521,19004531,19004656,19004668,19004670,19004692,41317155', authuser: 0, kscs: 'c9c918f0_DJtTWvCOI6WGjwSE9JrICg', u: 'c9c918f0', kGL: 'US' }; google.kHL = 'en'; })(); ....... I checked the forums and did not see any UDFs that allow for this. I see the Chilkat UDF but that only supports JSON. Any help would be greatly appreciated.
  5. Hi all i am currently trying to click on an element in a HTML Table, but just can get it to work. i am able to click the top of the table so it changes to sort but just can't click on the element in the table. an i need to click on element to continue in the site. i have attached the code so far and pictures of the table element want to click plus the source of the table. i am able to get data in the table with $oTable = _IETableGetCollection($oIE, 2) but not able to click on them. Help is very much appreciated #cs ---------------------------------------------------------------------------- AutoIt Version: Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #include <IE.au3> #include "DOM.au3" #include <Array.au3> #include <MsgBoxConstants.au3> Global $oIE = _IECreate("*") _IELoadWait($oIE) Sleep(2000) _PageLogin($oIE) _PageLoadWait() _PageNewReq($oIE) _PageLoadWait() _InputModelInf($oIE) _PageLoadWait() Sleep(1000) $aTableLink = BGe_IEGetDOMObjByXPathWithAttributes($oIE, "//table/tbody/tr/td[.='Name Of user']", 2000) ;~ $aTableLink = BGe_IEGetDOMObjByXPathWithAttributes($oIE, "//table/tbody/tr", 2000) ;~ _ArrayDisplay($aTableLink,"$aTableLink") If IsArray($aTableLink) Then ConsoleWrite("Able to BGe_IEGetDOMObjByXPathWithAttributes($oIE, //table/tbody/tr/td[.='Name Of user'])" & @CRLF) For $i = 0 To UBound($aTableLink)-1 ConsoleWrite(" OuterHTML : " & $aTableLink[$i].outerHTML & @CRLF) ConsoleWrite(" Parentnode : " & $aTableLink[$i].parentnode & @CRLF) ConsoleWrite(" Parentnode.click : " & $aTableLink[$i].parentnode.fireEvent("onclick","click") & @CRLF) $objClick = $aTableLink[$i].parentnode ;~ _IEAction($aTableLink[$i] , "focus") _IEAction($objClick , "focus") ;~ If _IEAction($aTableLink[$i], "click") Then If _IEAction($objClick, "click") Then ConsoleWrite("Able to _IEAction($aForumLink[0], 'click')" & @CRLF) _IELoadWait($oIE) Else ConsoleWrite("UNable to _IEAction($aForumLink[0], 'click')" & @CRLF) Exit 3 EndIf Next Else ConsoleWrite("Unable to BGe_IEGetDOMObjByXPathWithAttributes($oIE, //table/tbody/tr/td[.='Name Of user'])" & @CRLF) Exit 2 EndIf _PageLoadWait() Func _InputModelInf($oTmpIE) ; Add Var for Model & Serial in Func $oModelInput = _IEGetObjById($oTmpIE,"model") _IEAction($oModelInput,"focus") _IEDocInsertText($oModelInput, "*") $oSerialInput = _IEGetObjById($oTmpIE,"serial") _IEAction($oModelInput,"focus") _IEDocInsertText($oSerialInput, "*") $links = $oTmpIE.document.getElementsByClassName("btn btn-primary ng-scope") For $link In $links If $link.innertext = "Søg" Or $link.innertext = "Search" Then $link.click() ExitLoop EndIf Next Return True EndFunc Func _PageNewReq($oTmpIE) $links = $oTmpIE.document.getElementsByClassName("ng-scope k-link") For $link In $links If $link.innertext = "Send ny fejlmelding" Or $link.innertext = "Submit a New Service Request" Then $link.click() ExitLoop EndIf Next Return True EndFunc Func _PageLogin($oTmpIE) $oUserInput = _IEGetObjById($oTmpIE,"loginid") _IEDocInsertText($oUserInput, "*") $oPasswordInput = _IEGetObjById($oTmpIE,"password") _IEDocInsertText($oPasswordInput, "*") $links = $oTmpIE.document.getElementsByClassName("btn btn-primary login ng-scope") For $link In $links If $link.innertext = "Sign in" Then $link.click() ExitLoop EndIf Next Return True EndFunc Func _PageLoadWait() Local $PageLoadWait = False ;~ nav navbar-nav navbar-right ng-hide ;~ nav navbar-nav navbar-right $tags = $oIE.document.GetElementsByTagName("ul") For $tag in $tags $class_value = $tag.GetAttribute("class") If $class_value = "nav navbar-nav navbar-right" Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Webpage loading :) ' & @CRLF) ;### Debug Console $PageLoadWait = True ExitLoop EndIf Next Do sleep(250) For $tag in $tags $class_value = $tag.GetAttribute("class") If $class_value = "nav navbar-nav navbar-right ng-hide" Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Webpage load finished :)'& @CRLF) ;### Debug Console $PageLoadWait = False ExitLoop EndIf Next Until $PageLoadWait = False EndFunc Thanks in advance
  6. Hi, I'm trying to find a text value inside of a html. This is what the line looks like normally: <p id="line1" class> <span class="bot">TEXT HERE</span> </p> The text then changes to a non breaking space: <p id="line1" class> <span class="bot">&nbsp;</span> </p> And then it changes back to normal text but it's different every time. Can I code this so that it grabs the text every time it changes and has a variable that represents it? I currently have this inside of my loop: $span = .document.getElementsByTagName("span") For $text In $span If $text.value = "&nbsp;" Then Sleep(50) MsgBox(0,0,0) ;messagebox to test if it can be found, but I don't know how to grab the text EndIf Next The problem is that there are many other lines in the html that have the same span but are called "line3", "line5", etc and the one I need is from "line1". I will appreciate if anyone can help with this!
  7. Good evening everyone Before all, I want to say that I'm doing this script to see how _IE* functions work, and see if my studs can hack a quiz I'm working on. I want to clarify that I'm not automating any game, bypassing any CAPTCHAs, or anything that could damage anyone. I was trying to autofill a form, based on which question is displayed. The question is always stored in here: <header> <h1><span class="questionid">1. </span>Here goes the question</h1> </header> And answers are stored in here: <ul class="answers"> <li><label><span><input id="answer_0" name="answer[]" type="radio" value="0">Answer 1</span></label></li> <li><label><span><input id="answer_1" name="answer[]" type="radio" value="1">Answer 2</span></label></li> <li><label><span><input id="answer_2" name="answer[]" type="radio" value="2">Anwser 3</span></label></li> <li><label><span><input id="answer_3" name="answer[]" type="radio" value="3">Answer 4</span></label></li> </ul></fieldset></form></div> And, there are 15 questions like this. How can automatically fill my form? Thanks in advance Francesco
  8. I have previously used _IEFormElementGetObjByName and _IEFormElementSetValue to enter text into a search box on a form and then submit the form. I am now trying to enter text into a search box which is not part of a form. Here is the HTML from the website that i'm trying to enter the data on and then submit the search. <div class="row"> <div class="form-group col-xs-12"> <span id="FullWidthWithSubmenuContent_FullWidthContent_MainContent_AircraftRegistry_lblSearchText" for="input-search">Registreringsbeteckning</span> <div class="input-group col-xs-12"> <span id="FullWidthWithSubmenuContent_FullWidthContent_MainContent_AircraftRegistry_preSearchText" class="input-group-addon">SE -</span> <input name="ctl00$FullWidthWithSubmenuContent$FullWidthContent$MainContent$AircraftRegistry$txtSearchText" type="text" value="DTH" id="FullWidthWithSubmenuContent_FullWidthContent_MainContent_AircraftRegistry_txtSearchText" class="form-control" /> </div> </div> </div> <div class="row"> <div class="form-group col-xs-12"> <label class="sr-only" for="">Sök</label> <input type="submit" name="ctl00$FullWidthWithSubmenuContent$FullWidthContent$MainContent$AircraftRegistry$btnSearch" value="Sök" id="FullWidthWithSubmenuContent_FullWidthContent_MainContent_AircraftRegistry_btnSearch" class="btn btn-primary ladda-button" data-style="expand-right" /> </div> </div> Many thanks in advance cheers Roger
  9. #include <IE.au3> #include <MsgBoxConstants.au3> Local $oIE = _IECreate("website") Local $oForms = _IEFormGetCollection($oIE) For $oForm In $oForms MsgBox($MB_SYSTEMMODAL, "Form Info", $oForm.name) _IEImgClick($oForm.name, "Reserved.ReportViewerWebControl.axd?OpType=Resource&amp;Version=12.0.5522.0&amp;Name=Microsoft.ReportingServices.Rendering.HtmlRenderer.RendererResources.TogglePlus.gif", "src") Next I am having trouble clicking an image. Here is what I have tried.
  10. I've made this HTTP lib to simplify HTTP requests, mainly when dealing about POST data or file uploads. Three functions are available: string _HTTP_Get ( string $sURL ) string _HTTP_Post ( string $sURL , string $sPostData ) string _HTTP_Upload ( string $sURL , string $sFilePath , string $sFileField , string $sPostData = '' , string $sFilename = Default) Additionaly, two helper functions are also available: URLEncode($sStr) URLDecode($sStr) Full documentation: https://github.com/jesobreira/HTTP.au3/blob/master/README.md Fork me on Github: https://github.com/jesobreira/HTTP.au3 Download lib + docs: https://github.com/jesobreira/HTTP.au3/archive/master.zip
  11. Hi! Does anyone have any idea why Test() returns 0, while Test2() returns 1? #include <IE.au3> MsgBox(0, "", Test() & " " & Test2()) Func Test() Local $oHTML = ObjCreate("HTMLFILE") $oHTML.body.innerHTML = FileRead("Test.html") Return IsObj($oHTML.getElementsByClassName("example")) EndFunc Func Test2() Local $oIE = _IEAttach("", "instance", 1) Return IsObj($oIE.document.getElementsByClassName("example")) EndFunc Sample Test.html I open in IE before testing: <!DOCTYPE html> <html> <body> <p class="example"></p> <div class="example"></div> </body> </html> I'm receiving html text in a response to http request, I need to parse it fast and easy, getElementsByClassName would have been ideal. I'm using version.
  12. time difference

    respected sir, how could I calculate the time difference using auto IT function ?
  13. I'm trying to get the HTML code after executing javascript in IE. Here is my code. $url = "http://example.com" $oIE = _IECreate($url) Sleep(3000) ;waiting for executing javascript. But useless. $oFrame = _IEFrameGetCollection($oIE, 0) $sCode &= _IEPropertyGet($oFrame, "innerhtml") & @CRLF Then, I get this error. "C:\Program Files (x86)\AutoIt3\Include\IE.au3" (2308) : ==> The requested action with this object has failed.: $oTemp = $oObject.document.body $oTemp = $oObject^ ERROR After executing javascript, when I view source in IE, there are HTML code like below. <html> <head> ... </head> <body> ... </body> </html> What should I do?
  14. Hello, I´m using AutoIt for a long time not only to automate applications but to develop complex stand-alone applications. I am particularly annoyed by the fact that the logic in AutoIt is difficult to separate from the presentation and the standard GUI elements are very inflexible. If you want to create something more sophisticated, you have to use GDI and write many lines for simple effects or animations. With these thoughts in mind, I looked around for alternatives and unfortunately found nothing that corresponded to my ideas. Therefore, I have thought of a different solution. I have created this framework in order to separate the logic from the presentation and to use HTML & CSS in my GUI to the full extent. Goals of the Framework MVC development with AutoIt HTML & CSS GUI in AutoIt Better and more modern package system(UDF) like npm CLI support like Laravel Artisan faster and more structured application development roma() is strongly inspired by Laravel PHP Framework so Laravel users will notice many similarities. Support Unfortunately, I do not have much time for the project at the moment. So I thought to myself, I share it and ask you for support. Content The framework primarily serves for the development of stand-alone applications. All necessary settings are preconfigured. You can start immediately with the logic or the view All settings are in one place The logic(controller) and the presentation are clearly separated from each other Development with MVC structure You can develop the GUI in realTimer without restarting AutoIt GUI can be developed in HTML & CSS Any graphic & video integration is possible (.png, .gif etc.). Also everything that is possible in HTML5 and CSS3 JavaScript & Frameworks are supported Debug logs are created including console output It is possible to work with multiple languages All UDFs are contained in the framework. Reloading is not necessary The AutoIt UDFs are also included in the Framework. This ensures that it workds correctly for different Versions of AutoIt The framework also provides functions that are necessary for communication between AutoIt and HTML. For example, evaluation of form data (GET & POST) (documentation for this and examples follow.) I also developed a template engine. (Similar to Laravel Blade) The template engine supports if statements (would like to have help to make loops possible). In the Future I will publish a complete documentation of the template engine and examples. Almost finished is a database package. This makes communication with databases an absolute child's play. So that was it for once. If something else occurs to me, I will update the list. Small Example url: http://localhost:8080/welcome ;application.au3 ;----------------------------------------------------------------------------------------------/ ; Initial ;----------------------------------------------------------------------------------------------/ #include 'vendor\initial.au3' func _roma_routes() ;----------------------------------------------------------------------------------------------/ ; GET Request ;----------------------------------------------------------------------------------------------/ $route_get('welcome', 'welcome') endfunc ;roma\controller\welcome.au3 ;----------------------------------------------------------------------------------------------/ ; Welcome Controller ;----------------------------------------------------------------------------------------------/ func controller_welcome() Local $name = 'Eduard', $lastname = 'Tschernjaew' ;----------------------------------------------------------------------------------------------/ ; passed variable to view (Array are possible) ;----------------------------------------------------------------------------------------------/ $toView('name', $name) $toView('lastname', $lastname) ;----------------------------------------------------------------------------------------------/ ; Return a View ;----------------------------------------------------------------------------------------------/ return $VIEW('welcome') endfunc <html> <head> <title>roma() - Template Test</title> </head> <body> <h1>Hello {{ $name }} {{ $lastname }}</h1> </body> </html> Download The framework is under the Open-Source license. Github: https://github.com/4ern/roma/ git clone https://github.com/4ern/roma.git or download the ZIP. Documentaion: https://github.com/4ern/roma/blob/master/README_EN.md ToDo [ ] Loop Funktion in Template.au3 [ ] CLI module like Laravel Artisan [ ] Solution approaches, how the framework can be optimally compiled, so that in the compiled state all files are available. [ ] Framework Tests & Bugfixes roma() is still in development. Documentation and application examples will soon be available. I am looking forward to any Contributing. Thanks for Feedback and Contributing
  15. Hello hello! As the title suggests, I am fairly new to AutoIt. In fact, I am new to scripting/coding in general! I've done a few Codecademy courses on CSS and HTML and perhaps Java though this was all a few years back. I've recently come across AutoIt and decided to give it a try since I do quite a few repetitive tasks on a daily basis. In the last couple of weeks I've managed to master (or at least get comfortable with) mouse clicks(left/right), window focus, sending key strokes, controls, and pixel search. Now let's get to the topic. At this point in time I've tried out a few simple IE scripts but I am having difficulty understanding some things and tying everything together into one tool. Specifically, I am struggling with this little bit of code I got from DaleHohm in his IE examples thread. Post #3 (The last example.) #include <IE.au3> $sImgDir = "c:\foo\"; Please make certain this folder already exists (silent failure if not) $sWebPage = "http://www.autoitscript.com/forum/index.php?"; webpage with images $oIE = _IECreate() _IENavigate($oIE, $sWebPage) $oIMGs = _IETagNameGetCollection($oIE.document, "img") ; Loop through all IMG tags and save file to local directory using INetGet For $oIMG in $oIMGs $sImgUrl = $oIMG.src $sImgFileName = $oIMG.nameProp INetGet($sImgUrl, $sImgDir & $sImgFileName) Next I have a couple questions about the code above. 1) ".src" ".nameProp" What are these called? I figured out that I can change the .src to something like .href and it gets anything on the webpage with a .href tag but where can I learn more about these? I still haven't been able to figure out what ".nameProp" is for or what it does. Is there any documentation/list of all the different ".PurpleTextAfterAVariable" (Edit: Not sure why it's red in the above example, just checked SciTE and it's purple there) that I can use? 2) I understand that the code above gets every "For $oIMG in $oIMGs" on the page but how can I make it only get the first 5? I've tried doing a "count" and a "for" but I am unsure what to replace the "For...in" statement with to keep the script functional. Is there a way to limit the _IETagNameGetCollection function to only get a specific amount of tags? Finally, the reason I can't just use the code as is. The site I am trying to get images from works in this way: A href= "Link-To-Picture.jpg" Img src= "Link-To-Picture-thumbnail.jpg" The script above downloads every single thumbnail from the image gallery which is great, it does what it's supposed to but I need the full resolution image. After changing the script to get anything with an "A href" tag it does what I need it to do, it gets every single image in full resolution... along with every single one of the 80-100 extra files/links to other sites that are listed under an "A href" tag. Now I've come up with two solutions but unfortunately, as I mentioned above. I don't know how to put my solution into the code above to make it work. Solution 1) Only get the first 5 instances of "A href" on the page. As mentioned above. I don't know how to do this. Solution 2) Read the entire page, find "-Thumbnail.jpg" replace with ".jpg" and use the script as is. I understand how to do a replace. All I am missing is how to do a replace within a field in the code of an IE page. I assume that I have to use the HTMLRead functions but how do I use/alter the data read? I really hope all of this make sense and that someone here will be able to help me figure out a solution to my issue or at least answer one of my questions! I do have plenty more questions and I am sure that I'll have even more by the time I figure this out. Thank you very much for your time!
  16. This function does not appear to be returning the correct characters for a site, but the code of the page of the site shows the right characters? Can someone show me how to correct this, or is this a bug in the function? Actually I corrected it in my code, but just replacing these characters, but should they even be part of the string? Here is the two strange characters: “ .â€. #include <Inet.au3> #include <String.au3> $linc = "http://www.dictionary.com/browse/diablo?s=t" $str = _INetGetSource($linc, 1) ; has this in it ;“devil.”. $str = BinaryToString($str) ConsoleWrite($str) $str = _StringBetween($str, '<div class="def-set">', '</div>', 1) MsgBox('', 'raw data', $str[0])
  17. Hi, I need to get, from table made in HTML (which screen you have in attachment and code right here http://pastebin.com/uFvteNdw ), a text from columns "Location" and "IP of test server" for each line (AVL, DB) and get attribute them to string variables. I have a sollution but in a "stupid" way (coping whole text to notepad and searching by build in seach tool ) Any ideas? I'm already working on IE commands and IEtabtoarray is not working.
  18. HTML Entities

    Today I was working on some Webservices UDF. As a result I get this kind of data: I was searching here: http://www.htmlhelp.com/reference/html40/entities/special.html http://www.html-entities.org/ http://www.w3schools.com/html/html_entities.asp But finally I made this: #include <IE.au3> _Example() Func _Example() Local $sHTML = _ '&lt;root&gt;&#xD;&lt;Data&gt;&#xD;&lt;Type&gt;F&lt;/Type&gt;&#xD;&lt;/Data&gt;&#xD;&lt;/root&gt;' MsgBox(0, 'TEST', _HTML_DecodeEntities($sHTML)) EndFunc ;==>_Example Func _HTML_DecodeEntities(ByRef $sHTML) $sHTML = StringReplace($sHTML,'&#xD;','<hr>') Local $oIE = _IECreate("about:blank", 0, 0, 1, 0) _IEDocWriteHTML($oIE, $sHTML) Local $sResult = _IEBodyReadText($oIE) _IEQuit($oIE) Return $sResult EndFunc ;==>_HTML_DecodeEntities Regards, mLipok
  19. Hey, so I'm a bit new to autoit, but I'm running into a problem with getting html objects off of IE as soon as I have a second tab open. For example: Say I open a new IE window to Youtube.com, get the search bar object from the html, and plug something in. Then I send "ctrl+T" to the window, making a new tab which opens google.com, and want to get the search bar and put in "dogs". As soon as the code tries to execute, it cannot find the google search bar. I have tried using multiple IE windows, and the same code works fine, but for our purposes we need them to all be in one window with multiple tabs. Does anyone have a potential solution or answer? Is Autoit going to get Tab support in the future? I feel like this is kind of something that should be native.
  20. As stated in other quires, I'm quite new to this, so I'm in need of a little help. All I'm after is a line of code that will do one of the following: Select a file at random from a folder, open it, continue with the rest of the script I've written and then delete that file, then loop. Or, Select the top file (preferred option) and then do the above^ All I'm after is a line that will select a file following one of the above rules. Something like this would be perfect: RandomSelect (C:\Users\User\Desktop\Folder) *.html Deletefile (C:\Users\User\Desktop\Folder) (above file) Thankyou PS: If its not possible for Autoit, would it be possible for any other language?
  21. ; #FUNCTION# ==================================================================================================================== ; Name ..........: _html2pdf ; Description ...: Convert HTML file to PDF file with htm2pdf.exe by Synopse ; Syntax ........: _html2pdf($sHTML_FileFullPath[, $sPDF_FileFullPath = Default[, $bDeleteHTML = False]]) ; Parameters ....: $sHTML_FileFullPath - a string value. HTML file full path. ; $sPDF_FileFullPath - [optional] a string value. Default value is Default -> $sHTML_FileFullPath & '.pdf' ; $bDeleteHTML - [optional] a boolean value. Default is False. ; Return values .: $sPDF_FileFullPath or set @error to 1 ; Author ........: mLipok ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: http://blog.synopse.info/post/2010/07/14/htm2pdf-free-tool ; Example .......: No ; =============================================================================================================================== Func _html2pdf($sHTML_FileFullPath, $sPDF_FileFullPath = Default, $bDeleteHTML = False) If $sPDF_FileFullPath = Default Then $sPDF_FileFullPath = $sHTML_FileFullPath & '.pdf' Local $sINI_FileFullPath = @ScriptDir & '\htm2pdf.ini' IniWrite($sINI_FileFullPath, 'Settings', 'HTML', $sHTML_FileFullPath) IniWrite($sINI_FileFullPath, 'Settings', 'PDF', $sPDF_FileFullPath) IniWrite($sINI_FileFullPath, 'Settings', 'OpenAfterSave', '0') IniWrite($sINI_FileFullPath, 'Settings', 'ScaleToFit', '1') IniWrite($sINI_FileFullPath, 'Settings', 'Orientation', 0) IniWrite($sINI_FileFullPath, 'Settings', 'PaperSize', 0) IniWrite($sINI_FileFullPath, 'Margins', 'Left', 2) IniWrite($sINI_FileFullPath, 'Margins', 'Top', 1) IniWrite($sINI_FileFullPath, 'Margins', 'Right', 1) IniWrite($sINI_FileFullPath, 'Margins', 'Bottom', 1) ShellExecuteWait(@ScriptDir & '\htm2pdf.exe', '/silent', @ScriptDir) If Not FileExists($sPDF_FileFullPath) Then Return SetError(1, 0, '') Else If $bDeleteHTML Then FileDelete($sHTML_FileFullPath) Return $sPDF_FileFullPath EndIf EndFunc ;==>_html2pdf http://blog.synopse.info/post/2010/07/14/htm2pdf-free-tool#main http://blog.synopse.info/post/2010/07/14/htm2pdf-free-tool http://synopse.info/forum/viewtopic.php?pid=187 http://synopse.info/files/pdf/htm2pdf.zip mLipok
  22. Hi all, I got the need of crawling all the label tag contained within a div element, and then inspecting one by one looking for a specified content Local $reportForm=_IEFormGetObjByName($oIE,"ui_form") If @error Then ConsoleWrite('_IEFormGetObjByName @error = ' & @error & ' @extended = ' & @extended & @CRLF) EndIf Local $divTagSites = _IEGetObjById($reportForm, "divElementId") If @error Then ConsoleWrite('_IEGetObjById for @error = ' & @error & ' @extended = ' & @extended & @CRLF) EndIf Local $divLabels = _IETagNameGetCollection($divTagSites, "label") If @error Then ConsoleWrite('_IETagNameGetCollection for label @error = ' & @error & ' @extended = ' & @extended & @CRLF) EndIf ConsoleWrite('_IETagNameGetCollection @extended = ' & @extended & @CRLF) For $divLabel In $divLabels ConsoleWrite($divLabel.for & @CRLF) Next the html looks like the following <div id="divElementId"> <td nowrap="nowrap"> <span> <input id="divElementId_ctl01" type="checkbox" name="divElementId$ctl01" onclick="some JavaScript stuff" /> <label for="divElementId_ctl01_ctl01">ele-1000002 [1000002]</label> </span> </td> </div> what I'd like to perform is to access the label element text ele-1000002 [1000002] comparing to a variable and then check the corresponding checkbox. What I miss is the step: accessing the text inside the label tag. TIA. PS: searching through the forum I found out only method based on analyzing the whole html page.
  23. Html-Imager



    Create a Html file with Images.
  24. Hello again. I have having some trouble passing an object out of a loop properly in order to deal with it more nicely outside of the function searching for it. The thing I want passed out is the $oTag object, but I can't seem to do anything with the object after my function returns. Func FrameCrawlerTagSearch($poFrame, $pTag, $pProperty, $pPropertyValue, $pAction = "click", $pLoadWait = 1, $pReturn = 0) Local $bDone = False _IELoadWait($poFrame) $Test = _IEDocReadHTML($poFrame) $oTags = _IETagNameAllGetCollection($poFrame) For $oTag In $oTags If $oTag.tagname = $pTag Then If $pProperty = "id" And $oTag.id = $pPropertyValue Then MsgBox(0, "", $oTag.id & $pReturn) _IEAction($oTag, $pAction) If $pLoadWait = 1 Then _IELoadWait($poFrame) EndIf If $pReturn = 1 Then MsgBox(0, "", "Returning the tag " & $oTag.tagname) Return $oTag EndIf ElseIf $pProperty = "name" And $oTag.name = $pPropertyValue Then _IEAction($oTag, $pAction) If $pLoadWait = 1 Then _IELoadWait($poFrame) EndIf ElseIf $pProperty = "innertext" And StringInStr($oTag.innertext, $pPropertyValue) Then ;~ MsgBox(0, "", $oTag.innertext) _IEAction($oTag, $pAction) If $pLoadWait = 1 Then _IELoadWait($poFrame) EndIf EndIf $dxCounter = $dxCounter + 1 EndIf Next $aSubFrames = _IEFrameGetCollection($poFrame) $iNumFrames = @extended If $iNumFrames > 0 Then $i = 0 While Not $bDone And $i < $iNumFrames $oSubFrame = _IEFrameGetCollection($aSubFrames, $i) $bDone = FrameCrawlerTagSearch($oSubFrame, $pTag, $pProperty, $pPropertyValue, $pAction, $pLoadWait, $pReturn) If $bDone Then Return $bDone EndIf $i = $i + 1 WEnd EndIf Return False EndFunc ;==>FrameCrawlerTagSearch
  25. On the page I am trying to automate functions on, I am trying to click on a TR but _IEAction does not yield the result I am seeking. It seems like I am not really supposed to click directly on TR but in the region the TR is being displayed in the browser, but this is just my theory. <TABLE> <COLGROUP> <COL></COLGROUP> <TBODY> <TR> <TD> <TABLE class="IccGridHeader iccgrid" __uiObjectID="0"> <COLGROUP> <COL width=30> <COL width=30> <COL width=50> <COL width=100> <COL width=100> <COL class=GwtAlignRight width=100></COLGROUP> <TBODY> <TR> <TD><IMG class=gwt-Image src="Space.gif" width=16 height=16 __uiObjectID="0" __eventBits="133398655" __gwtLastUnhandledEvent></TD> <TD><IMG class=gwt-Image src="Space.gif" width=16 height=16 __uiObjectID="1" __eventBits="133398655" __gwtLastUnhandledEvent></TD> <TD>BP#</TD> <TD>Begin</TD> <TD>End</TD> <TD>Total Balance</TD></TR></TBODY></TABLE></TD></TR> <TR> <TD> <DIV style="POSITION: relative; ZOOM: 1; HEIGHT: 90px; OVERFLOW: auto" __lastScrollLeft="0" __lastScrollTop="0" __uiObjectID="1"> <DIV style="POSITION: relative; ZOOM: 1"> <TABLE style="HEIGHT: 10px" class="clickable iccgrid" __eventBits="1"> <COLGROUP> <COL width=30> <COL width=30> <COL width=50> <COL width=100> <COL width=100> <COL class=GwtAlignRight width=100></COLGROUP> <TBODY> <TR class=IccGridColFocus> <TD></TD> <TD></TD> <TD colSpan=3>All billing periods</TD> <TD>0.00</TD></TR> <TR class=GridRow> <TD><IMG class=gwt-Image src="Space.gif" width=16 height=16 __uiObjectID="0" __eventBits="133398655" __gwtLastUnhandledEvent></TD> <TD><IMG class=gwt-Image src="16x16.gif" width=16 height=16 __uiObjectID="1" __eventBits="133398655" __gwtLastUnhandledEvent></TD> <TD>001</TD> <TD>10/05/2015</TD> <TD>10/07/2015</TD> <TD>0.00</TD></TR></TBODY></TABLE></DIV></DIV></TD></TR></TBODY></TABLE></TD> <TD style="VERTICAL-ALIGN: top" align=left> <TABLE> <COLGROUP> <COL></COLGROUP> <TBODY> <TR> <TD> <TABLE class="IccGridHeader iccgrid" __uiObjectID="0"> <COLGROUP> <COL width=20> <COL width=250> <COL class=GwtAlignRight width=100> <COL class=GwtAlignRight width=150></COLGROUP> <TBODY> <TR> <TD>&nbsp;</TD> <TD>Responsible Parties</TD> <TD>Allocated($)</TD> <TD>Total Balance($)</TD></TR></TBODY></TABLE></TD></TR> <TR> <TD> <DIV style="POSITION: relative; ZOOM: 1; HEIGHT: 90px; OVERFLOW: auto" __lastScrollLeft="0" __lastScrollTop="0" __uiObjectID="1"> <DIV style="POSITION: relative; ZOOM: 1"> <TABLE class="clickable iccgrid" __eventBits="1"> <COLGROUP> <COL width=20> <COL width=250> <COL class=GwtAlignRight width=100> <COL class=GwtAlignRight width=150></COLGROUP> <TBODY> <TR class=IccGridColFocus> <TD>&nbsp;</TD> <TD>All responsible parties</TD> <TD>46,621.22</TD> <TD>0.00</TD></TR> <TR class=GridRow> <TD><IMG class=gwt-Image src="Space.gif" width=16 height=16 __uiObjectID="0" __eventBits="133398655" __gwtLastUnhandledEvent></TD> <TD>1 - LOLOL</TD> <TD>46,621.22</TD> <TD>0.00</TD></TR> <TR class=GridRow> <TD><IMG class=gwt-Image src="Space.gif" width=16 height=16 __uiObjectID="1" __eventBits="133398655" __gwtLastUnhandledEvent></TD> <TD>JOHN DOPE</TD> <TD>0.00</TD> <TD>0.00</TD></TR></TBODY></TABLE></DIV></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></LABEL></TD></TR></TBODY></TABLE>I need to select these: <TR class=GridRow>Any guidance is greatly appreciated, thank you.