Unable to obtain driver for chrome using Selenium Manager

Oui même chose chez moi j’ai à nouveau des problèmes

décidément on n’est vraiment pas tous logé à la meme enseigne :frowning:

j’utilise également la derniere beta, et voici mes logs de l’instant :

0044|[2023-12-08 17:27:22]INFO : Starting daemon with cmd >>sudo python3 /var/www/html/plugins/noip/core/class/../../resources/noip-renew.py  --loglevel info --user aaaaa@gmail.com --pwd "*******************" --threshold 7 --renew 1 --noip_path /var/www/html/plugins/noip/core/class/../.. --force_path 0<<
0045|[2023-12-08 17:27:22]INFO : Log level : info
0046|[2023-12-08 17:27:22]INFO : User : aaaaa@gmail.com
0047|[2023-12-08 17:27:22]INFO : Threshold : 7
0048|[2023-12-08 17:27:22]INFO : Renew : 1
0049|[2023-12-08 17:27:22]INFO : ForcePath : 0
0050|[2023-12-08 17:27:23]INFO : Start running process
0051|[2023-12-08 17:27:23]INFO : Opening https://www.noip.com/login...
0052|[2023-12-08 17:27:25]INFO : Logging in...
0053|[2023-12-08 17:27:33]INFO : Opening https://my.noip.com/dynamic-dns...
0054|[2023-12-08 17:27:38]INFO : yyyy.ddns.net expires in 20 days
0055|[2023-12-08 17:27:38]INFO : xxxx.ddns.net expires in 6 days
0056|[2023-12-08 17:27:38]INFO : Updating xxxx.ddns.net
0059|[2023-12-08 17:27:41]INFO : Confirmed hosts: 1

donc en plus de récup les éléments correctement
il m’a également correctement renouvelé le domaine qui expirait dans 6 jours

Bonjour

Tu avais le même écran que celui de mon screenshot ?

Il proposait que leur site d’activer la double authentification, je suppose qu’il faut mieux ne pas le faire ?

c’est sur qu’avec la double authent ca ne passera pas, puisque tu es censé renseigner un code unique que le plugin ne peut pas connaitre

et je n’ai pas de screenshot puisqu’ils sont fait qu’en cas de soucis

Ok, c’est quand même étonnant cette histoire de bouton que l’on ne voit pas sur le screenshot

Ça ne pourrait pas venir de la version de chromedriver ?

Tu disais avoir une version plus récente que le mienne.

merci @Nemeraud pour l’accès à ton jeedom.

quand je regarde de plus pres ta page de DDNS voilà ce qu’on a chez toi

est ce que parmi ceux qui ont le probleme

Unable to locate element: {"method":"xpath","selector":".//following-sibling::td[4]/button[contains(@class, 'btn')]"}

vous auriez cette meme colonne rouge ?

perso je ne l’ai pas sur mon compte …

Bonjour à tous,

Je suis ce sujet avec attention depuis le début, car j’ai aussi ce problème sur Selenium pour un autre projet à moi (captures d’écran automatique d’un site web à chaque changement de version du code sur N navigateurs pour vérifier visuellement les changements et faire automatiquement la doc).

Or dans le cas de ce sujet, Selenium est utilisé pour mettre à jour les entrées ddns, si je ne m’abuse.
Pourquoi ne pas utiliser le client ddclient pour faire les MAJ ou l’API ?
Comme suggéré sur leur site/doc :

My 2 cts,
Bad

Salut Bad

Merci pour ton retour.

L objectif principal et initial du plugin n est pas la maj de l IP (je l ai ajouté que dernierement), mais c est surtout de cliquer sur le bouton « renouveller » tous les 30 jours, sans que l utilisateur ait a le faire.
Sur noip tu peux disposer d un ddn gratuit, mais uniquement pour 30 jours et a renouveller a chaque fois si tu veux le garder. L objectif c est bien de s eviter a faire ce clic.

(Puis j en ai profité pour ajouter le check et update de l ip → mais qui lui passe par une api, donc pas de soucis de ce cote la !)


Par contre si t as des billes/pistes sur selenium (et le dl du driver auto) je prends ! Car la … je vois pas où ca coince d une conf a l autre…!

Waw, c’est le seul fournisseur DDNS gratuit à faire ça, je n’avais jamais entendu parler de cette validation, surtout aussi fréquente, je comprends mieux l’intérêt de Selenium !

Je pense que tu as réglé les différents problèmes liés au driver,
l’erreur que rencontrent Nemeraud et Andarek :

Unable to locate element: 
{
    "method":"xpath",
    "selector":".//following-sibling::td[4]/button[contains(@class, 'btn')]"
}
-> Nemeraud: (Session info: headless chrome=89.0.4389.114)
-> Andarek: (Session info: headless chrome=90.0.4430.212)

Semble plus liée au xpath et à la recherche du bouton dans la page, dans certaines versions ou si la page est un peu différente. N’ayant pas de ddns chez no-ip, je ne peux pas check moi-même.
Tu pourrais peut-être activer plus de débug lors d’une exception, sauvegarder la source ou faire une capture d’écran (j’aime bien les captures d’écrans :smiley: )?

Bad

c’est déjà le cas, d’où ma derniere réponse :slight_smile:
et d’où le fait que je trouve une colonne supplémentaire qui vient de je ne sais où et qui du coup fait sauter mon XPath → ma 4e colonne est passée en 5e position …

non c’est bien mon soucis.
pour moi les versions actuelles de selenium sont censées se débrouiller pour télécharger elles-meme le driver, ce qui ne semble pas etre le cas dans les msg plus haut
d’ailleurs les versions de chromes indiqué plus haut sont obsolètes … pour autant aucune maj ne se fait chez eux …
→ donc j’ai temporairement « corrigé » le truc en forcant l’utilisant du path vers le driver dispo, mais sans réussir à comprendre pourquoi selenium ne fait pas correctement sont taff de télécharger elle meme les dernieres versions à la fois de chrome et du driver (en version 119.xxxx, et non 89 ou 90.xxx !)

En fait, ils sont au taquet niveau version :
buster (oldoldstable) / chromium-driver
dep: chromium (= 89.0.4389.114-1~deb10u1) [arm64]
dep: chromium (= 90.0.4430.212-1~deb10u1) [non arm64]

bullseye (oldstable) / chromium-driver
dep: chromium (= 119.0.6045.199-1~deb11u1)

Debian 10 n’étant plus mis à jour, ni maintenu, ils n’ont pas accès aux nouvelles versions.

Pour le selector, tu peux peut-être utiliser "//button[contains(@class, 'btn')]" (pour faire fi du td[4]) ?

Oui oui c est presque une des solutions que jai deja appliquée chez @Nemeraud :slight_smile:
Mais j aimerais arriver au jour du renouvellement pour voir si ya pas un autre soucis ! :slight_smile:

Et surtout comprendre d où vient cette colonne supplémentaire !


ba oui mais c’est bien ce que je n’explique pas …
sur ma dev :

> uname -a
Linux jeedomDev 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64 GNU/Linux

> lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

et pourtant :

0071|[2023-12-05 10:30:09][DEBUG] : Started executable: `/usr/bin/chromedriver` in a child process with pid: 20378
0072|[2023-12-05 10:30:10][DEBUG] : Checking chromedriver in PATH
0073|[2023-12-05 10:30:10][DEBUG] : Running command: chromedriver --version
0074|[2023-12-05 10:30:10][DEBUG] : Output: "ChromeDriver 119.0.6045.105 (38c72552c5e15ba9b3117c0967a0fd105072d7c6-refs/branch-heads/6045@{#1103})"
0075|[2023-12-05 10:30:10][DEBUG] : Running command: which chromedriver
0076|[2023-12-05 10:30:10][DEBUG] : Output: "/usr/bin/chromedriver"
0077|[2023-12-05 10:30:10][DEBUG] : Found chromedriver 119.0.6045.105 in PATH: /usr/bin/chromedriver

et si je supprime chromedriver du path (de /usr/bin), lors de l’exec suivant selenium le retélécharge et met en cache tout seul, cette derniere version en 120 (et non 89/90) :

0015|[2023-12-09 17:31:49][DEBUG] : Executing process: /usr/local/lib/python3.7/dist-packages/selenium/webdriver/common/linux/selenium-manager --browser chrome --debug --output json
0016|[2023-12-09 17:32:15][DEBUG] : Checking chromedriver in PATH
0017|[2023-12-09 17:32:15][DEBUG] : Running command: chromedriver --version
0018|[2023-12-09 17:32:15][DEBUG] : Output: ""
0019|[2023-12-09 17:32:15][DEBUG] : chromedriver not found in PATH
0020|[2023-12-09 17:32:15][DEBUG] : Checking chrome in PATH
0021|[2023-12-09 17:32:15][DEBUG] : Running command: which chrome
0022|[2023-12-09 17:32:15][DEBUG] : Output: ""
0023|[2023-12-09 17:32:15][DEBUG] : chrome not found in PATH
0024|[2023-12-09 17:32:15][DEBUG] : chrome has not been discovered in the system
0025|[2023-12-09 17:32:15][DEBUG] : Reading metadata from https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json
0026|[2023-12-09 17:32:15][DEBUG] : Required browser: chrome 120.0.6099.71
0027|[2023-12-09 17:32:15][DEBUG] : Downloading chrome 120.0.6099.71 from https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.71/linux64/chrome-linux64.zip
0028|[2023-12-09 17:32:15][DEBUG] : chrome 120.0.6099.71 has been downloaded at /root/.cache/selenium/chrome/linux64/120.0.6099.71/chrome
0029|[2023-12-09 17:32:15][DEBUG] : Reading metadata from https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
0030|[2023-12-09 17:32:15][DEBUG] : Required driver: chromedriver 120.0.6099.71
0031|[2023-12-09 17:32:15][DEBUG] : Driver URL: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.71/linux64/chromedriver-linux64.zip
0032|[2023-12-09 17:32:15][DEBUG] : Driver path: /root/.cache/selenium/chromedriver/linux64/120.0.6099.71/chromedriver
0033|[2023-12-09 17:32:15][DEBUG] : Browser path: /root/.cache/selenium/chrome/linux64/120.0.6099.71/chrome
0034|[2023-12-09 17:32:15][DEBUG] : Using driver at: /root/.cache/selenium/chromedriver/linux64/120.0.6099.71/chromedriver

Pour comparer avec ce qui se passe sur mon ATLAS (image officielle JEEDOM)

eedom@JeedomAtlas:~$ uname -a
Linux JeedomAtlas 5.10.43-rockchip64 #21.05.4 SMP PREEMPT Wed Jun 16 08:02:12 UTC 2021 aarch64 GNU/Linux

jeedom@JeedomAtlas:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
jeedom@JeedomAtlas:~$

pour obtenir apres renommage du /usr/bin/chromedriver

-- Installation of python library 'selenium' with command pip3.7
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Requirement already satisfied: selenium in /usr/local/lib/python3.7/dist-packages (4.11.2)
Requirement already satisfied: urllib3<3,>=1.26 in /usr/local/lib/python3.7/dist-packages (from urllib3[socks]<3,>=1.26->selenium) (2.0.7)
Requirement already satisfied: trio~=0.17 in /usr/local/lib/python3.7/dist-packages (from selenium) (0.22.2)
Requirement already satisfied: trio-websocket~=0.9 in /usr/local/lib/python3.7/dist-packages (from selenium) (0.11.1)
Requirement already satisfied: certifi>=2021.10.8 in /usr/local/lib/python3.7/dist-packages (from selenium) (2023.11.17)
Requirement already satisfied: attrs>=20.1.0 in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (23.1.0)
Requirement already satisfied: sortedcontainers in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (2.4.0)
Requirement already satisfied: idna in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (3.6)
Requirement already satisfied: outcome in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (1.3.0.post0)
Requirement already satisfied: sniffio in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (1.3.0)
Requirement already satisfied: exceptiongroup>=1.0.0rc9 in /usr/local/lib/python3.7/dist-packages (from trio~=0.17->selenium) (1.2.0)
Requirement already satisfied: wsproto>=0.14 in /usr/local/lib/python3.7/dist-packages (from trio-websocket~=0.9->selenium) (1.2.0)
Requirement already satisfied: pysocks!=1.5.7,<2.0,>=1.5.6 in /usr/local/lib/python3.7/dist-packages (from urllib3[socks]<3,>=1.26->selenium) (1.7.1)
Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from attrs>=20.1.0->trio~=0.17->selenium) (1.7.0)
Requirement already satisfied: h11<1,>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium) (0.14.0)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from h11<1,>=0.9.0->wsproto>=0.14->trio-websocket~=0.9->selenium) (4.7.1)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->attrs>=20.1.0->trio~=0.17->selenium) (3.15.0)
-- Installation of dependencies is done !

par contre pour voir cette partie, je suis obligé de commenter les « rm » dans le code du install_apt et install_check

sinon j’ai ca

-- Installation of python library 'selenium' with command pip3.7
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
cat: /tmp/jeedom/noip/dependancy_noip: No such file or directory
-- Installation of dependencies is done !

(Je ne reinstall pas les dependances comme tu le fais ici, les dep installees je ny touche plus.
Les logs de téléchargement du driver se fait automatiquement a l execution du refresh sur l un des domaines, donc rien a voir avec l install des dependances)

Bonsoir @faiseurdepluie et @Andarek

Avez vous la colonne DNS Key dans votre interface Noip ? Et savez vous si vous avez fait une action particulière pour avoir cette colonne ?

j’avais le problème de sélection du bouton, puis j’ai vu une MAJ en beta, que j’ai appliqué. je me suis retrouvé avec le problème antérieur de domaine vide :

`0319|[2023-12-09 19:14:05]INFO : Starting daemon with cmd >>sudo python3 /var/www/html/plugins/noip/core/class/../../resources/noip-renew.py  --loglevel info --user XXX--pwd "****************" --threshold 7 --renew 1 --noip_path /var/www/html/plugins/noip/core/class/../.. --force_path <<
0320|usage: noip-renew.py [-h] [--loglevel LOGLEVEL] [--user USER] [--pwd PWD]
0321|[--threshold THRESHOLD] [--renew RENEW]
0322|[--noip_path NOIP_PATH] [--force_path FORCE_PATH]
0323|noip-renew.py: error: argument --force_path: expected one argument
0324|[2023-12-09 19:14:07]DEBUG : [Maison][Domaine] file content:
0325|[2023-12-09 19:14:07]ERROR : [Maison][Domaine] file content empty
0326|[2023-12-09 19:14:08]DEBUG : Prochaine vérification automatique pour Domaine : 2023-12-09 20:33:00
0327|[2023-12-09 19:15:12]DEBUG : [TRACE] makeCurlRequest : "XXXXXXX"
0328|[2023-12-09 19:15:12]DEBUG : [TRACE] all items to update => []
0329|[2023-12-09 19:15:12]DEBUG : Pas de mise à jour d'IP à réaliser`

je vais regarder si je peux réappliquer les modifs précédentes (qui auraient sauté).

pour répondre à la question : oui j’ai aussi la colonne DDNS Key dans l’interface. je n’ai rien fait pour l’avoir.

Penses a utiliser le.bouton texte preformaté </> quand tu partages des logs, pour que ca soit lisible ! :wink:
Merci

Ya rien a « bidouiller » :


« Rien » je ne pense pas :slight_smile:
Reste a trouver quoi/comment …

Est ce que tu n aurais pas essayer de mettre ton compte noip sur un routeur/box ou autre ?

Penses a utiliser le.bouton texte preformaté </> quand tu partages des logs, pour que ca soit lisible ! :wink:
Merci

pardon! j’ai tenté en modifiant mon message, cest pas beaucoup plus beau

Ya rien a « bidouiller » :

oui c’est ce que je viens de voir en regardant le fichier

« Rien » je ne pense pas :slight_smile:
Reste a trouver quoi/comment …
Est ce que tu n aurais pas essayer de mettre ton compte noip sur un routeur/box ou autre ?

vraiment aucune manip à part cliquer sur le mail de rappel de renouvellement du domaine pour le faire manuellement (i.e : valider le captcha puis « renouveler »). ça faisait une éternité que je m’étais pas logué sur le site.

Est ce que tu regardé le lien que je tai donné surtout…?

C’est aussi ce que j’ai répondu à Thomas, je ne vais jamais sur la console Noip depuis que j’utilise le plugin, j’y suis retournée suite au problème pour voir si tout était ok.

NOIP est configuré sur mon routeur mais ça fait plusieurs années que c’est en place

J’ai aucun souvenir d’avoir fait une modification sur le site Noip et j’ai regardé un peu dans les paramètres, je vois pas ce que j’aurais pu être amené à changer