I'm running into some trouble reading a table with Chrome.ahk in a loop. It seems to randomly stop in the loop and different spots and never get through the entire loop. I have a function that is writing to a txt file and the code stops at PageInstance.Evaluate(some Java Script).value. I see the log file write the retrieving message, but not the retrieved message. The loop does not continue and no errors are thrown.
Any help would be great
Here's my code
Code: Select all
getJobNumberURLs(iframeRef) {
iframeRef := "document.getElementsByClassName('isView reportsReportBuilder')[0].contentWindow."
sleep, 5000
PageInstance := Chrome.GetPageByTitle("Parse Report", "StartsWith")
js := iframeRef "document.getElementsByClassName('data-grid-table data-grid-full-table')[0].rows.length"
rowCount := PageInstance.Evaluate(js).value
PageInstance.Disconnect()
loopCount := rowCount -2
loop %loopCount%
{
PageInstance := Chrome.GetPageByTitle("Parse Report", "StartsWith")
PageInstance.WaitForLoad()
PageInstance.Call("Console.enable")
if (!IsObject(PageInstance)) {
MsgBox Not A Page Object
}
progressBarPercent := A_Index * (100 / loopCount)
Progress, %progressBarPercent%, File Wait Status , %A_Index% of %loopCount%, File Wait
sleep 1000
jobNumberJS := iframeRef "document.getElementsByClassName('data-grid-table data-grid-full-table')[0].rows[" A_Index "].cells[1].innerText"
WriteToLogFile("Retrieving Job Number " A_Index)
jobNumber := PageInstance.Evaluate(jobNumberJS).value
if (StrLen(jobNumber) < 1) {
MsgBox Failure 1
}
WriteToLogFile("Retrieved Job Number " A_Index)
jobNumberLinkJS := iframeRef "document.getElementsByClassName('data-grid-table data-grid-full-table')[0].rows[" A_Index "].cells[1].querySelector('a').href"
WriteToLogFile("Retrieving Job Link " A_Index)
jobNumberLink := PageInstance.Evaluate(jobNumberLinkJS).value
if (StrLen(jobNumberLink) < 1) {
MsgBox Failure 2
}
WriteToLogFile("Retrieved Job Link " A_Index)
taskNumberJS := iframeRef "document.getElementsByClassName('data-grid-table data-grid-full-table')[0].rows[" A_Index "].cells[2].innerText"
WriteToLogFile("Retrieving Task Number " A_Index)
taskNumber := PageInstance.Evaluate(taskNumberJS).value
if (StrLen(taskNumber) < 1) {
MsgBox Failure 3
}
WriteToLogFile("Retrieved Task Number " A_Index)
taskNumberLinkJS := iframeRef "document.getElementsByClassName('data-grid-table data-grid-full-table')[0].rows[" A_Index "].cells[2].querySelector('a').href"
WriteToLogFile("Retrieving Task Link " A_Index)
taskNumberLink := PageInstance.Evaluate(taskNumberLinkJS).value
if (StrLen(taskNumberLink) < 1) {
MsgBox Failure 4
}
typeJS := iframeRef "document.getElementsByClassName('data-grid-table data-grid-full-table')[0].rows[" A_Index "].cells[7].innerText"
WriteToLogFile("Retrieving Job Type " A_Index)
jobType := PageInstance.Evaluate(typeJS).value
if (StrLen(jobType) < 1) {
MsgBox Failure 5
}
WriteToLogFile("Retrieved Job Type " A_Index)
jobNumberLink := StrReplace(jobNumberLink, ".", "`.")
taskNumberLink := StrReplace(taskNumberLink, ".", "`.")
jobEntry := jobNumber ", " jobNumberLink ", " taskNumber ", " taskNumberLink ", " jobType
FileAppend, %jobEntry% `n, C:\Users\parse\Desktop\ParsingFiles\Jobs.csv
PageInstance.Disconnect()
}
return
}