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:mais je ne suis pas sur que ce soit une alerte à proprement parler
Code : Sélectionner tout - Visualiser dans une fenêtre à part driver.switch_to.alert().accept()
- changer l'élément actifJ'ai suivi quelques conseils que j'ai pu faire sur le net :
Code : Sélectionner tout - Visualiser dans une fenêtre à part driver.switch_to.active_element()
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 :
Un autre essai m'a amené au code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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")
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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")
Merci
Partager