Bon... On aura essayé :?
EDIT: Par contre tu peux tenter avec Firefox :
Code:
1
2
3
4
5
6 from selenium import webdriver url = "https://www.google.com" driver = webdriver.Firefox() driver.get(url)
Version imprimable
salut.
Même punition :
Code:
1
2
3
4
5
6
7
8
9
10
11 Traceback (most recent call last): File "/home/swapnfly/mypythonapp/main-no-prompt.py", line 22, in <module> driver = webdriver.Firefox() File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/firefox/webdriver.py", line 191, in __init__ self.service.start() File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 104, in start self.assert_process_still_running() File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 115, in assert_process_still_running return_code = self.process.poll() AttributeError: 'Service' object has no attribute 'process'
Est-ce qu'il ne suffirait pas d'adapter cette ligne ainsi:
En mettant le chemin complet vers l'exécutable Chrome?Code:driver = webdriver.Chrome('/path/to/chromedriver')
Ou sinon, peut-être qu'il suffirait de garder driver = webdriver.Chrome(options=options) mais ajouter quelque chose comme ça (vérifier la doc pour être sûr):
Vu que vous utilisez "service", voici un exemple d'utilisation:Code:options.setBinary("/path/to/other/chrome/binary")
Référence: ChromeDriver - WebDriver for Chrome - Getting startedCode:
1
2
3
4
5
6
7
8
9
10
11
12 import time from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service('/path/to/chromedriver') service.start() driver = webdriver.Remote(service.service_url) driver.get('http://www.google.com/'); time.sleep(5) # Let the user actually see something! driver.quit()
Je vous conseille fortement de reconstituer un petit lab dans un VM par exemple. Essayez d'installer la même version de Python et de Selenium que sous Windows, afin de faire tourner votre application dans un environnement "comparable".
De toute façon, vous pouvez tester Selenium séparément de votre application et c'est ce que je vous conseille de faire. Vous pouvez partir du lien que je vous ai donné précédemment. Faites tourner Selenium dans un script à part et une fois que vous aurez validé son fonctionnement vous verrez mieux ce qu'il y a à changer dans votre code.
Merci d'avoir essayer de m'aider mais j'ai l'erreur suivante :
avec ce codeCode:
1
2
3
4
5
6
7
8
9 Traceback (most recent call last): File "/home/swapnfly/mypythonapp/main-no-prompt.py", line 22, in <module> service.start() File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 104, in start self.assert_process_still_running() File "/home/swapnfly/virtualenv/mypythonapp/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 115, in assert_process_still_running return_code = self.process.poll() AttributeError: 'Service' object has no attribute 'process'
Code:
1
2
3
4
5
6
7
8
9
10
11 from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service('/home/swapnfly/mypythonapp') service.start() driver = webdriver.Remote(service.service_url) driver.get('http://www.google.com/');
je ne sais pas si c'est important mais pour me connecter à mon terminal, je tape les commandes suivantre :
Code:
1
2source /home/swapnfly/virtualenv/mypythonapp/3.10/bin/activate && cd /home/swapnfly/mypythonapp
Non, comme expliqué plus haut, mettez le path complet vers l'exécutable Chrome, pas vers votre application... probablement qu'en tapant which chrome vous pouvez récupérer la bonne valeur.
la commandechrome me donne çaCode:which
Pour info, j'ai mis l'exécutable chromedrive.exe dans mon applicationCode:
1
2
3 ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ which chrome /usr/bin/which: no chrome in (/home/swapnfly/virtualenv/mypythonapp/3.10/bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/cpanel/3rdparty/lib/path-bin:/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin:/opt/cpanel/composer/bin:/home/swapnfly/bin)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ ll total 13980 drwxrwxr-x 2 swapnfly swapnfly 44 Jan 20 15:11 __pycache__ -rw-rw-r-- 1 swapnfly swapnfly 4120 Jan 26 14:34 a.txt -rwxr-xr-x 1 swapnfly swapnfly 12358144 Jan 23 10:13 chromedriver.exe -rw-rw-r-- 1 swapnfly swapnfly 0 Jan 27 13:36 geckodriver.log -rw-rw-r-- 1 swapnfly swapnfly 1908226 Jan 26 14:29 get-pip.py -rw-r--r-- 1 swapnfly swapnfly 6543 Jan 28 12:48 main-no-prompt.py -rwxr-xr-x 1 swapnfly swapnfly 5773 Jan 23 15:41 main.py -rw-r--r-- 1 swapnfly swapnfly 333 Jan 20 15:11 passenger_wsgi.py -rw-r--r-- 1 swapnfly swapnfly 159 Jan 18 16:08 pip-command.txt -rw-r--r-- 1 swapnfly swapnfly 87 Jan 20 15:20 pip-upgrade.txt -rw-r--r-- 1 swapnfly swapnfly 28 Jan 18 16:14 pip.txt drwxr-xr-x 2 swapnfly swapnfly 6 Jan 18 15:42 public -rw-rw-r-- 1 swapnfly swapnfly 28 Jan 23 15:33 test.py drwxr-xr-x 2 swapnfly swapnfly 25 Jan 18 15:42 tmp
Ce que je ne comprends pas très bien, c'est que vous essayez apparemment de lancer un exécutable .exe (chromedriver.exe) sous Linux ?
Vous devez installer Chrome + Selenium en suivant les instructions adaptées à votre plateforme Linux, pas juste copier un programme windows en espérant que ça va marcher sous Linux... Et une fois que ce sera fait, essayez de faire tourner Chrome puis Chrome + Selenium avant de les intégrer à votre application.
Et chromedriver à lui seul ne suffit pas, il faut aussi que Chrome soit installé. Et ensuite Selenium.
Je suis allé sur plusieurs tuto mais ma distribution ne reconnait aucune commande : ni sudo, ni yum, ni apt...
Il n'y a rien qui passe
Code:
1
2
3
4
5 ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ sudo yum install ./google-chrome-stable_current_*.rpm bash: sudo: command not found ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ yum install ./google-chrome-stable_current_*.rpm bash: yum: command not found ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$
Quelle est votre distro ? A tout hasard essayez: hostnamectl.
j'ai vraiment l'impression que le système reconnaît aucune commande
la version est la suivanteCode:
1
2 ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ hostnamectl bash: hostnamectl: command not found
Code:
1
2 ((mypythonapp:3.10)) [swapnfly@world-202 mypythonapp]$ cat /proc/version Linux version 3.10.0-962.3.2.lve1.5.36.el7.x86_64 (mockbuild@buildfarm03.cloudlinux.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Mon May 18 02:16:06 EDT 2020
Mais votre hébergeur (car c'est un hébergeur n'est-ce pas ?) vous a vendu quoi ?
Est-ce que vous n'êtes pas plutôt sur une espèce d'hébergement mutualisé, cheap mais qui ne vous donne aucun droit sur la machine y compris installer des packages ?
Ca ressemble un peu à un environnement bridé. Si vous n'avez pas de compte root et pas de sudo alors il faudra peut-être clarifier vos besoins auprès de l'hébergeur.
Comme vous êtes manifestement sur du Red Hat, dnf et/ou yum devraient fonctionner pour installer des packages au départ d'un repo, mais si dans le cas présent vous voulez installer un fichier .rpm préalablement téléchargé, c'est plutôt quelque chose comme ceci:
Mais encore une fois, installer des packages requiert des droits root.Code:rpm -i fichier.rpm
Oui c'est un hébergeur mutualisé.
Je vais me renseigner auprès d'eux pour savoir quels droits j'ai exactement.
Merci
Je viens d'avoir la réponse de mon hébergeur et c'est comme vous l'aviez dit. Je suis en hébergement mutualisé; je ne peux donc rien installé. Trop deg.
Il faut maintenant que je trouve une solution pour héberger mon script python avec possibilité d'installer des packages.
si vous avez des idées, je suis preneurs ;-)
Déjà faire fonctionner l'application développée sous Windows sur un Linux "local" sur lequel vous pourrez installer/modifier ce que vous voulez serait un préalable...
Après vous faites un peu ce que vous voulez mais ici, c'est un forum de développeurs avec le langage Python. Pour les solutions d'hébergements, il y a des forums ad hoc ici ou ailleurs.
- W
Il y a des VPS pour quelques $... je doute que vous ayez besoin d'un serveur dédié rien que pour ça, juste un petit VPS.
Ou peut-être une machine chez AWS ferait l'affaire...
En attendant, je vous conseillerais de créer un environnement Linux dans une VM avec Virtualbox ou VMware. Ou bien il y a d'autres options comme utiliser une image Docker. Ainsi vous pourriez travailler sur le portage de ce projet au départ de votre poste de travail.
Gardez quand même en tête que la procédure d'installation des packages varie un peu d'une distribution à une autre, il serait donc bien d'avoir une idée dès à présent. Là vous étiez parti sur du Red hat mais ce n'est pas forcément un choix délibéré de votre part.
En réalité il n'y a pas tellement de choses à installer: Chrome, Selenium + Chrome driver mais ça demande de lire attentivement la doc.
Et peut-être quelques packages Python mais si vous travaillez dans un virtualenv c'est encore plus facile.
Merci beaucoup binarygirl pour tout ton aide et ta pédogogie.
Je vais voir comment m'installer un environnement linux sur mon Windows 10.
Merci encore 👌