selenium télécharger des fichiers non référencés
Bonsoir,
Je me casse la tête depuis quelques heures.
Je me connecte à un site avec login et mot de passe.
Je parcours quelques pages avec Selenium et j'arrive sur la page qui m'intéresse.
Sur cette page se trouvent des icônes (pdf, docx, tex) sur lesquelles je dois cliquer pour télécharger les fichiers correspondants.
Malheureusement, je n'y parviens pas.
Je liste les fichiers qui m'intéressent :
Code:
1 2
| liste_suj = driver.find_elements(by=By.CSS_SELECTOR, value="button[class='ec']")
print(liste_suj) |
qui me donne :
Code:
[<selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="e2af7658-253b-42db-b724-913336f7ffa2")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="f1ed9649-4141-4dd2-8964-9d26cb0e64e3")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="5a1f871d-5200-4020-8949-2a59ded10615")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="14e9eb79-9e72-4428-9f7c-8b6aec0629a0")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="834f24da-e11e-49e0-a3db-a188800dc2fc")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="26458a06-6228-4563-8752-0be88fbc2d38")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="f318e428-67ca-491c-9550-63f03a74c87a")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="d499334e-31dd-4c3b-85d5-6d7bc8f1744d")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="3f4c606c-340d-4dfe-a4ab-885fc2ac71df")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="8cceb9b4-c2bd-489e-a3af-9d7ae0535b08")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="d76474ca-9859-4273-a21b-0fb7b6ee532d")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="1a2bbcc4-5eb9-40eb-adba-eb70596b2896")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="95891d2d-3754-43c7-85b4-df8ede63a0be")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="74cee4d5-4652-43de-b3f2-f2c3c9d851b1")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="ab87ba73-f374-4def-abd9-6473696d05a1")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="1d4bcb80-c752-4bb5-a351-0d41a6d23713")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="65b65724-e90b-4615-bec8-0352b640fe3d")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="84ca679f-e8d0-4073-9318-44baa10be32f")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="ffafc0bb-b484-4d24-85f6-0b59d2a7a547")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="cb383177-ed32-4b87-96ab-1c68103aace7")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="e63b3c01-5932-4769-af47-21adf6428f03")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="94fba562-627b-4854-88b7-dd0561668dee")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="d38ff558-298b-485a-990d-76d7dd2380a7")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="0ea0287c-b5bf-4c93-99c7-458d2c19f8c4")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="c7014639-e0f7-4d0b-8c8c-e4abefd2d5ba")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="7f14348a-6813-4dab-84f7-f1e1e7eaa4fa")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="96af94ec-898d-4dd8-9913-8b0bc5d74cc4")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="c843b5e8-da76-48d2-aec7-830a20e57911")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="25468b46-3f73-4244-8315-9c7071d1612e")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="ce45f9e3-8f3a-44a4-85a2-9104475be31a")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="57fe3ab2-2fe6-4619-99b2-9de4443b8c30")>, <selenium.webdriver.remote.webelement.WebElement (session="766fc56767efaf0ef6b004e180921b8e", element="993ae25c-919a-4051-8805-ea9429e8790e")>]
Je tente ensuite de les télécharger mais sans succès avec :
Code:
1 2 3
| for suj in liste_suj:
# driver.refresh()
suj.click() |
qui me donne l'erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Traceback (most recent call last):
File "/home/marco5/.local/lib/python3.10/site-packages/spyder_kernels/py3compat.py", line 356, in compat_exec
exec(code, globals, locals)
File "/.............../.........../................./ups1.py", line 78, in <module>
suj.click()
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py", line 81, in click
self._execute(Command.CLICK_ELEMENT)
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webelement.py", line 740, in _execute
return self._parent.execute(command, params)
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
StaleElementReferenceException: stale element reference: element is not attached to the page document
(Session info: chrome=109.0.5414.119) |
Il y a 6 pages à parcourir et pas mal de fichiers à télécharger sur chaque page.
Si quelqu'un a une idée pour automatiser, je suis preneur.
Bonne fin de semaine.
[edit] Au cas où, si cela peut aider :
Code:
1 2 3 4 5 6 7 8
| Sélecteur CSS*:
#bot > tbody:nth-child(5) > tr:nth-child(1) > td:nth-child(4) > button:nth-child(1) > img:nth-child(1)
chemin CSS*:
html body div#corps form table#bot tbody tr td button.ec img
Xpath*:
/html/body/div[2]/form/table[2]/tbody[3]/tr[1]/td[4]/button[1]/img |