Dans le cloud, prêt à l'emploi
La console tourne dans le cloud : ouvrez un navigateur et elle est là. Branchez un appareil, il apparaît dans la liste. Rien à installer, configurer ni maintenir.
La console est dans le cloud : vous ouvrez un navigateur et elle est là. Vous branchez un appareil, il apparaît dans la liste — rien à installer, configurer ni exploiter. Faites la tâche une fois sur l'écran en direct et elle devient un script, ou écrivez-le vous-même : chercher un élément, une image ou un texte tient en une ligne. Envoyez-le ensuite à tout le groupe.
function main() {
client.session('com.zhiliaoapp.musically'); // ouvre l'app
// fenêtre facultative : 1 seconde d'attente au plus
clickElement('labelContains', 'Plus tard', 1);
// image : attend le bouton J'aime puis le touche
if (!clickImage('btn_like.png', 5)) {
return false;
}
// texte : lit la bande du haut
var lines = ocr([0.05, 0.1, 0.9, 0.12]);
logi(lines.text);
client.swipeUp(); // balayage façon humaine
return true;
}Console réelle, deux iPhone réels : contrôle synchronisé, enregistrement sans code, bac à sable de code et planification.
La console tourne dans le cloud : ouvrez un navigateur et elle est là. Branchez un appareil, il apparaît dans la liste. Rien à installer, configurer ni maintenir.
Pas besoin de développeur. Faites la tâche une fois sur l'écran diffusé : appuis, balayages et saisies deviennent des étapes, et du JavaScript lisible sort aussitôt.
L'API de script prend ses arguments dans l'ordre : chercher un élément, toucher une image ou lire un texte tient en une ligne, comme clickElement('label', 'Connexion'). En cas d'erreur, le message affiche la ligne corrigée.
Trouvez ce que l'arbre des éléments ne voit pas : correspondance d'images par modèle, recherche de couleurs en un ou plusieurs points et reconnaissance de texte avec Apple Vision — le tout sur le téléphone, sans réseau ni envoi de capture.
Touchers en un point aléatoire d'une zone, attentes aléatoires, l'app repart de zéro à chaque tour ; les balayages suivent un tracé de main, légèrement courbé, lent puis rapide, avec de petits tremblements. Deux exécutions ne se ressemblent jamais.
L'écran de l'appareil arrive dans le navigateur en temps réel, en pair à pair dès que possible pour éviter le serveur ; le mur d'écrans montre tout un groupe d'un coup, et vous touchez et balayez directement sur l'image.
Activez la synchronisation et une action part vers tout le groupe. Les coordonnées circulent en proportions de 0 à 1 plutôt qu'en pixels : des appareils de résolutions différentes tournent côte à côte.
Exécutions sans surveillance par groupe d'appareils, nombre par jour, plage et intervalle. Chaque étape se relance d'elle-même, les tâches d'un appareil qui se déconnecte sont récupérées et réattribuées, et le journal pointe l'étape exacte qui a échoué.
Un appareil hors ligne, WDA qui ne répond plus, des échecs en série, une batterie ou un stockage faibles : l'alerte part aussitôt vers WeCom, Telegram ou votre webhook, et batterie, stockage et température se lisent d'un coup d'œil.
Aucun serveur à installer, rien à configurer : un iPhone suffit pour commencer.
Connectez-vous à la console et c'est parti. Si vos données doivent rester dans votre propre centre de données, tout le service peut tourner sur vos serveurs.
Installez l'app CloudClick iOS et WebDriverAgent sur l'iPhone, puis connectez-vous : l'appareil apparaît dans la console. Un outil Windows associé signe et installe l'IPA et monte l'image disque développeur.
Enregistrez une fois sur l'écran en direct, ou écrivez dans le bac à sable de code en essayant chaque ligne sur un vrai appareil ; une fois validé, publiez-le en tâche par groupe d'appareils et par plage horaire, avec les journaux qui remontent en direct.
Une autre question ? Écrivez-nous : c'est un ingénieur qui répond.
Non. Branchez l'écran de l'appareil et effectuez la tâche une fois : appuis, balayages et saisies deviennent automatiquement des étapes. Là où une étape doit suivre un élément plutôt qu'une coordonnée, ouvrez l'inspecteur et cliquez le nœud ; l'expression de localisation se remplit seule. Ce qui sort est du JavaScript lisible, que vous pouvez continuer à modifier si vous le souhaitez.
Non. Les arguments se suivent dans l'ordre et chaque action tient en une ligne : clickElement('label', 'Connexion'), findImage('btn.png', 5), ocr(). Le bac à sable de code de la console propose une référence rapide de l'API, l'autocomplétion et un inspecteur d'éléments : vous exécutez chaque ligne sur un vrai appareil au fil de l'écriture.
L'enregistreur n'a pas de coordonnées fixes par défaut : les touchers tombent en un point aléatoire d'une zone, attentes et balayages prennent des plages plutôt que des valeurs fixes, les tracés se courbent légèrement, lents puis rapides avec de petits tremblements, et chaque tour ferme l'app pour repartir de zéro. Deux exécutions ne se ressemblent jamais.
Oui. Il utilise le framework Vision d'Apple sur le téléphone lui-même — sans réseau ni envoi de capture — et lit le chinois, l'anglais, le japonais, le coréen et d'autres langues (le chinois demande iOS 14 ou plus récent). La recherche d'images et de couleurs se fait aussi sur le téléphone.
Oui. Le plan de contrôle est un binaire Go lié statiquement, sans version de glibc à viser ; donnez-lui un MongoDB, lancez-le sous supervisor avec nginx devant, et vos données comme vos appareils restent chez vous.
Oui. Le partage donne à un autre compte le droit d'exécuter le script, avec expiration facultative. Les paramètres restent séparés : le même script tourne chez chacun avec son propre jeu.
Pas aujourd'hui. Tout fonctionne sur des appareils iOS physiques via WebDriverAgent, et le runtime de scripts est bâti autour. Android ne fait pas partie de la version actuelle.
Apportez un appareil réel et une tâche que vous répétez chaque jour. On branche l'écran, on l'enregistre une fois et on l'exécute une fois, devant vous. Vous déciderez après.