Estoy tratando de obtener todos los totales de una página web interna y obtener el total.
para obtener un solo resultado, escribí esto:
tell application "Google Chrome"
tell tab 1 of window 1 to set orderTotal to execute javascript "document.getElementsByClassName('total')[0].innerHTML;"
end tell
la salida en este ejemplo es:
"<td>1,200.00</td><td>JPY</td>"
(PD: la moneda no siempre es la misma)
por obtener cada valor de este trabajo
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
que me dan algo como esto:
"<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
Quisiera borrar el texto y hacer un total,
Intenté esto para borrar los valores, pero obviamente no funcionó:
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
y para el total todavía no estoy seguro de cómo proceder.
En esa ausencia de la URL real y lo que parece ser un resultado incompleto, se muestra en el OP el siguiente ejemplo de código AppleScript que se define como y suma sus valores numéricos.r
list
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
Nota: El código de AppleScript de ejemplo es solo eso y no emplea ningún otro manejo de errores además de lo que se muestra y está destinado solo a mostrar una de las muchas formas de realizar una tarea. La responsabilidad siempre recae sobre el Usuario para agregar/usar el manejo de errores apropiado según sea necesario/deseable.
.00
usuario3439894
r
contiene el contenido de unarray
, probablemente debería tratarse como unlist
y debe recorrerlo con unarepeat
declaración .