# Recherche texte page web Applescript



## titigrou (14 Février 2017)

Hello,

Je me demandais si il était possible, quand je suis sur une page web donnée, de rechercher si la page contient une certaine chaine de caractère.
Je pensais faire un truc dans le genre

```
tell application "Safari"
    set URL of document 1 of window 1 to "http://www.google.fr"
    delay 5
    -- delay to let page load.
    if source of document 1 of window 1 contains "blablablabla" then
        --my sendAMail()
        display dialog "OK"
    else
        display dialog "KO"
    end if
   end tell
```
Mais ça impose de réouvrir la page, alors que la page est déjà censée être ouverte.
Quelqu'un aurait une idée?

Merci d'avance pour votre aide!

Antoine


----------



## nicolasf (14 Février 2017)

Si tu es déjà dans Safari, tu peux directement utiliser la condition « if » sans avoir à passer par la commande set URL. Ça marchera sans ouvrir un autre onglet.


----------



## titigrou (14 Février 2017)

nicolasf a dit:


> Si tu es déjà dans Safari, tu peux directement utiliser la condition « if » sans avoir à passer par la commande set URL. Ça marchera sans ouvrir un autre onglet.


En fait je voudrai le faire mais sous Chrome....


----------



## nicolasf (14 Février 2017)

titigrou a dit:


> En fait je voudrai le faire mais sous Chrome....



Je crois que ce n’est pas possible en AppleScript pur.

Deux solutions : soit passer par cette astuce avec du JavaScript ; soit ce que je fais moi, passer par la commande curl : 


```
set sourceCode to do shell script "curl -L " & quoted form of theURL
```


----------



## titigrou (14 Février 2017)

En utilisant

```
set sourceCode to do shell script "curl -L " & quoted form of theURL
```
ça récupère le code source c'est ça?
Ca le stocke dans une variable ensuite?


----------



## JacqR (14 Février 2017)

Bonjour, 


Pour Chrome, vous pouvez utiliser ce script :


```
tell application "Google Chrome"
    set currentTab to active tab of the front window -- l'onglet que vous regardez
    set theResult to execute currentTab javascript "document.documentElement.innerHTML" -- récupère la source de la page
    -- set theResult to execute currentTab javascript "document.body.innerText" -- récupère le texte de la page
    if theResult contains "blablablabla" then
        display dialog "OK"
    else
        display dialog "KO"
    end if
end tell
```


----------



## nicolasf (14 Février 2017)

titigrou a dit:


> En utilisant
> 
> ```
> set sourceCode to do shell script "curl -L " & quoted form of theURL
> ...



Exactement, ici dans la variable sourceCode. C’est universel au moins, ça ne dépend d’aucun navigateur.


----------

