Recently Browsing 0 members
No registered users viewing this page.
This is for those pages that seem to load when you use _FFOpenURL(), but they have a text saying "please wait while we load your page..." but according to _FFOpenURL() the page has loaded. An example seen in popular sites is the Cloudflare page saying "Checking your browser before...". It's the opposite of pausing a script until an element is visible on a page. It takes Elements in the form of id, xpath or text search.
Global $BrowserPort = 4242 Global $TimeOut = 60000 Global $LocalHost = "127.0.0.1" Func _FFWaitWhileElement($thiselement, $elementtype = "xpath", $timeoutms = 60000) _FFConnect($LocalHost, $BrowserPort, $TimeOut) Local $Element Local $ElementFound = 1 Local $TimeoutCountdown = 0 While $ElementFound <> 0 And $TimeoutCountdown < $timeoutms If $elementtype = "xpath" Then $Element = _FFXPath($thiselement) EndIf If $elementtype = "id" Then Local $ConstructXPath = ".//*[@id='" & $thiselement & "']" $Element = _FFXPath($ConstructXPath) EndIf ; MsgBox(0, "", $Element) Local $ElementXPathTextContent = _FFCmd("FFau3.xpath.textContent") ; MsgBox(0, "", $ElementXPathTextContent) Local $ElementXPathInnerHTML = _FFCmd("FFau3.xpath.innerHTML") ; MsgBox(0, "", $ElementXPathInnerHTML) If $ElementXPathTextContent = "_FFCmd_Err" Or $ElementXPathInnerHTML = "_FFCmd_Err" Then $ElementFound = 0 Else $ElementFound = 1 EndIf If $elementtype = "text" Then $ElementFound = _FFSearch($thiselement) ; MsgBox(0, "", $ElementFound) EndIf $TimeoutCountdown += 1000 _FFDisConnect() _FFConnect($LocalHost, $BrowserPort, $TimeOut) WEnd Return $ElementFound EndFunc _FFConnect($LocalHost, $BrowserPort, $TimeOut) _FFOpenURL("https://www.site.com/page", True) _FFWaitForElement("Please Wait...","text", 60000) MsgBox(0,"","Page finished loading") It's pretty simple, hope it helps some of you who are working with FF.au3 :)
I am very much a newbie, but I am slowly learning by writting simple scripts.
#include <Clipboard.au3> #include <File.au3> #include <Msgboxconstants.au3> Const $test_url = "https://www.autoitscript.com/site/" Const $hFileOpen = FileOpen(@WorkingDir & "\TEMP.txt",$FO_OVERWRITE) ; Open FIREFOX at https://www.autoitscript.com/site/ ShellExecute("firefox.exe",$test_url) Sleep(60000) ; Allow the page to open - no rush Send("^a") ; Select ALL text Sleep(1000) ; Pause for 1 second Send("^c") ; CTRL + C to copy text Sleep(1000) ; Pause for 1 second ; Write Data to File FileWrite($hFileOpen,_ClipBoard_GetData ($CF_UNICODETEXT)) ; Close Temp File FileClose($hFileOpen) MsgBox(262144,"Completed","Data Written To File") The above code basically just copies text on a webpage and outputs it to a file. Works well. I understand AutoIT a little more now.
However, Send() doesn't work when my screen lock is on. :-(
Is there a simple tweak which I can do so that it does work when my screen is locked, bearing in mind that I am not a guru like most users yet.
I read somewhere the ControlSend works, but requires the browser "handle".
Thanks in advance.
can anybody tell me is there any working udf for firefox? because the .15 version cant communicate with firefox. the first statement does not work . i know it worked because i tested it few months ago, but now its dead. after refresh firefox 2 weeks ago.
is there any tip?