Ich versuche, alle Summen von einer internen Webseite abzurufen und die Summe zu erhalten.
Um ein einzelnes Ergebnis zu erhalten, habe ich Folgendes geschrieben:
tell application "Google Chrome"
tell tab 1 of window 1 to set orderTotal to execute javascript "document.getElementsByClassName('total')[0].innerHTML;"
end tell
Die Ausgabe in diesem Beispiel ist:
"<td>1,200.00</td><td>JPY</td>"
(PS die Währung ist nicht immer gleich)
um jeden Wert dieser Arbeit zu erhalten
tell application "Google Chrome"
tell tab 1 of window 1 to set r to execute javascript "var outPut=[]; var arr=document.getElementsByClassName('total');for (var i in arr) {outPut.push(arr[i].innerHTML)};outPut;"
end tell
return r
die mir so etwas geben:
"<td>4,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>3,800.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", missing value, missing value, missing
Ich möchte den Text löschen und insgesamt tun,
Habe dies versucht, um die Werte zu löschen, funktioniert aber offensichtlich nicht:
set theText to Unicode text
property leftEdge1 : "<td>"
property rightEdge1 : "</td>"
try
set saveTID to text item delimiters
set text item delimiters to leftEdge1
set classValue to text item 2 of r
set text item delimiters to rightEdge1
set singleValue to text item 1 of classValue
set text item delimiters to saveTID
singleValue
end try
und insgesamt bin ich mir noch nicht sicher, wie ich weiter vorgehen soll.
In diesem Fehlen der tatsächlichen URL und der anscheinend unvollständigen Ausgabe wird im OP der folgende Beispiel -AppleScript- Coder
als definiert list
und seine numerischen Werte summiert.
set r to {"<td>4,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>3,800.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", missing value, missing value, missing value}
set theText to Unicode text
property leftEdge1 : "<td>"
property rightEdge1 : "</td>"
set totalValue to 0
repeat with i from 1 to count r
try
set saveTID to text item delimiters
set text item delimiters to leftEdge1
set classValue to text item 2 of item i of r
set text item delimiters to rightEdge1
set singleValue to text item 1 of classValue
set text item delimiters to saveTID
set totalValue to totalValue + singleValue
end try
end repeat
log totalValue
-- Result:
-- 42800
Hinweis: Der beispielhafte AppleScript- Code ist genau das und verwendet keine andere Fehlerbehandlung als die gezeigte und soll nur eine von vielen Möglichkeiten zeigen, eine Aufgabe zu erledigen. Es liegt immer in der Verantwortung des Benutzers, eine geeignete Fehlerbehandlung nach Bedarf/Wunsch hinzuzufügen/zu verwenden .
.00
die Ausgabe in wissenschaftlicher Notation erfolgt, wenn sie nicht endet. Sie sollten sich also Mac Automation Scripting Guide: Manipulating Numbers ansehen , und es gibt auch eine einfache Möglichkeit, eine numerische Zeichenfolge als Antwort auf diese Frage zu erzwingen .
Benutzer3439894
r
den Inhalt von an enthält,array
sollte es wahrscheinlich als a behandelt werdenlist
, und Sie müssen es mit einer Anweisung durchlaufen .repeat