4 votes

Comment activer la fonctionnalité chromedriver_autodownload dans appium ?

J'essaie de faire un test automatisé dans un appareil réel Android mais j'ai obtenu l'erreur suivante :

Encountered internal error running command: Error: No Chromedriver found that can automate Chrome '83.0.4103'. You could also try to enable automated chromedrivers download server feature. See https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md for more details

Comme vous pouvez le constater, il s'agit d'un problème de compatibilité avec Chromedriver, j'ai donc commencé à chercher des solutions et j'ai découvert que je pouvais autoriser chromedriver_autodownload dans appium pour résoudre ce problème. J'ai donc fermé appium, ouvert l'invite de commande, déplacé l'invite de commande dans le dossier où se trouve l'application appium, et tapé appium --allow-insecure chromedriver_autodownload . En d'autres termes, mon cmd (invite de commande) ressemblait à ceci : C:\Program Files\Appium>appium --allow-insecure chromedriver_autodownload , cela a généré les avertissements suivants et a ouvert appium par la suite :

 (node:14992) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, rename 'C:\Users\isaac\AppData\Roaming\appium-desktop\Settings-tmp' -> 'C:\Users\isaac\AppData\Roaming\appium-desktop\Settings'
(node:14992) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, rename 'C:\Users\isaac\AppData\Roaming\appium-desktop\Settings-tmp' -> 'C:\Users\isaac\AppData\Roaming\appium-desktop\Settings'
(node:14992) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:14992) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:14992) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:14992) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Si vous voyez, les deux premiers sont en fait des erreurs, mais je suis allé au chemin mentionné dans ces erreurs et j'ai vu que le fichier Settings n'était pas nommé Paramètres-tmp comme l'indique l'erreur, mais Paramètres Je ne comprends donc pas cette erreur. Et comme prévu, à cause de cette erreur, mon test n'a pas pu être exécuté, j'ai obtenu la même erreur de compatibilité Chromedriver que celle mentionnée au début.

Quelqu'un peut-il me dire si je fais quelque chose de mal lorsque j'utilise appium --allow-insecure chromedriver_autodownload ? ou un moyen de résoudre l'erreur de nom de fichier Settings ? ou peut-être un autre moyen de résoudre l'erreur de compatibilité Chromedriver au lieu de celui que j'ai essayé ?

Merci d'avance, toute aide sera grandement appréciée.

2voto

John K Points 31

Vous devrez ajouter deux capacités souhaitées :

chromedriverExecutableDir le chemin vers un répertoire accessible en écriture sur l'hôte du serveur Appium, où les nouveaux binaires Chromedriver peuvent être téléchargés et exécutés. chromedriverChromeMappingFile : le chemin vers un fichier JSON sur l'hôte du serveur Appium, où sera stockée une correspondance entre les versions de Chromedriver et la prise en charge de Chrome.

Ensuite, la ligne de commande devrait fonctionner.

Vous pouvez également instancier la classe AppiumDriverLocalService en tant que nouvel objet, puis spécifier les deux arguments comme suit :

AppiumDriverLocalService service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder().usingAnyFreePort().withArgument(() -> "--allow-insecure","chromedriver_autodownload"));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X