Bonjour,
Je découvre le module selenium pour tester une interface web via chrome.
J'ai pu faire pas mal de choses afin de ma connecter un site type sharepoint, naviguer dans les documents partagés, télécharger des documents.
Maintenant, j'aurais voulu copier les liens vers des documents dans le presse papier pour les inclure dans mails générés automatiquement.
Par contre, je veux à un moment récupérer le lien vers un élément des "shared document". Mais je n'arrive pas à passer au delà du pop-up ci-dessous.
J'ai essayé pas mal de chose, comme:
- autoriser le presse papier dans chrome
- activer la fenêtre d'alerte:
driver.switch_to.alert().accept()
mais je ne suis pas sur que ce soit une alerte à proprement parler
- changer l'élément actif
driver.switch_to.active_element()
J'ai suivi quelques conseils que j'ai pu faire sur le net :
https://stackoverflow.com/questions/...bdriver-python
https://stackoverflow.com/questions/...active#tab-top
Malheureusement, je n'arrive pas à trouver de solution viable pour passer sur cette fenêtre et appuyer sur le bouton "Autoriser".
Ci-dessous les deux codes qui me semblent le plus proche d'aboutir à la solution voulue :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from zipfile import ZipFile
from SecurityConfClass import *
from ApplicableConf import *
import pyperclip
import time
import os
import tarfile
Link_to_sharepoint_base_url = "https://perso.xxx.com/:f:/r/sites/toto/Shared%20Documents/ExcelFiles=1&web=1&e=RZF9R3"
StoragePath = os.path.abspath("C:\Perso\Eclipse\Check_ExcelFiles\storage")
Version_Id = "1.0.0"
Fct = "DFG"
startTime = time.time()
print(startTime)
options = webdriver.ChromeOptions()
prefs = {"download.default_directory" : "C:\\Perso\\Eclipse\\Check_ExcelFiles\\storage"}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=options)
driver.maximize_window()
driver.get(Link_to_sharepoint_base_url)
CyberPackFold = driver.find_element(By.XPATH,"//*[text()='"+Version_Id+"']");
CyberPackFold.click()
EqtFolder = driver.find_element(By.XPATH,"//*[text()='"+Fct+"']");
EqtFolder.click()
youpi2 = driver.find_element(By.XPATH, "//*[text()='Copier le lien']")
youpi2.click()
input("taper une touche lorsque la page est ouverte dans le navigateur chrome ... ")
alert = driver.switch_to.alert().accept()
AutorizeCopy = driver.find_element(By.ID, "id__11")
AutorizeCopy.click()
print(pyperclip.paste())
print("end") |
Un autre essai m'a amené au code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
from zipfile import ZipFile
from SecurityConfClass import *
from ApplicableConf import *
import pyperclip
import time
import os
import tarfile
Link_to_sharepoint_base_url = "https://perso.xxx.com/:f:/r/sites/toto/Shared%20Documents/ExcelFiles=1&web=1&e=RZF9R3"
StoragePath = os.path.abspath("C:\Perso\Eclipse\Check_ExcelFiles\storage")
Version_Id = "1.0.0"
Fct = "DFG"
startTime = time.time()
print(startTime)
options = webdriver.ChromeOptions()
prefs = {"download.default_directory" : "C:\\Perso\\Eclipse\\Check_ExcelFiles\\storage"}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=options)
driver.maximize_window()
driver.get(Link_to_sharepoint_base_url)
# wait for webpage opened
input("taper une touche lorsque la page est ouverte dans le navigateur chrome ... ")
CyberPackFold = driver.find_element(By.XPATH,"//*[text()='"+Version_Id+"']");
CyberPackFold.click()
EqtFolder = driver.find_element(By.XPATH,"//*[text()='"+Fct+"']");
EqtFolder.click()
youpi2 = driver.find_element(By.XPATH, "//*[text()='Copier le lien']")
youpi2.click()
input("taper une touche lorsque la page est ouverte dans le navigateur chrome ... ")
driver.wait_for_pop_up("Lien créé", "30000")
driver.switch_to.active_element()
sel.type("id__11", "Lien créé")
sel.click("id__11")
sel.select_window("null")
sam = driver.find_element(By.XPATH, "//div[@id='share-dialog-container']")
sam.click()
AutorizeCopy = driver.find_element(By.ID, "id__11")
AutorizeCopy.click()
print(pyperclip.paste())
print("end") |
Est-ce que quelqu'un pourrait m'aider à comprendre comment passer sur cette fenêtre pour autoriser la copie et revenir à la page du sharepoint avec le lien vers le fichier présent dans le presse papier ?
Merci
Partager