(1) Qu'est-ce que le sélénium
1. Selenium est un outil de test automatisé. En termes humains, cela signifie utiliser du code pour contrôler le navigateur.
2. 8 composants du script sélénium
① Instanciez l'objet navigateur
② Obtenir des informations sur le navigateur
③ Demande d'accès à la page
④ Rechercher les éléments positionnés
⑤ Éléments de commande
⑥ Chaîne d’action/chaîne de comportement
⑦ Obtenir des informations sur les éléments
⑧ Retarder l'attente
(2) module pilote Web
1. Objet WebDriver
① Instanciez le pilote d'objet WebDriver
Classement du navigateur
webdriver.Chrome()
webdriver.Firefox()
webdriver.Edge()
webdriver.Safari()
Options du navigateur
choix
②Attributs
code source de la page Web driver.page_source
driver.current_urlL'adresse URL demandée par l'onglet ou la fenêtre actuelle
liste des handles de fenêtre driver.window_handles
③ Méthode
pilote.get()
Fonction : Envoyer une requête à une URL
pilote.find_element()
Fonction : localiser un élément spécifié
Paramètres : by=préciser la méthode de positionnement, value=préciser la valeur spécifique
Ciblage
Par cette classe doit être importée depuis selenium.webdriver.common.by import By
Par.ID
Positionnement basé sur l'attribut d'identifiant de balise
De nom
Positionnement basé sur l'attribut du nom de la balise
Par.CLASS_NAME
Positionnement basé sur l'attribut de classe d'étiquette
Par.TAG_NAME
Cible basée sur le nom de la balise
Par.LINK_TEXT
Position basée sur le texte enveloppé par l'étiquette
Par.CSS_SELECTOR
Position basée sur les sélecteurs CSS
Par.XPATH
Localiser selon le langage de requête de chemin XPath
Valeur de retour : un objet WebElement
driver.find_elements()
Fonction : localisez tous les éléments spécifiés
Paramètres : by=préciser la méthode de positionnement, value=préciser la valeur spécifique
Valeur de retour : une liste composée d'objets WebElement
pilote.get_cookie()
Fonction : Récupérer un cookie nommé xxx
Paramètres : name=le nom du cookie que vous souhaitez obtenir
pilote.get_cookies()
Fonction : Obtenir tous les cookies
Valeur de retour : une liste de dictionnaires
pilote.execute_script()
Fonction : Exécuter le script JavaScript
Ouvrir un nouvel onglet
"window.open('http://httpbin.org/ip')"
barre de défilement
Déplacer vers le bas de la page
"window.scrollTo(0, document.body.scrollHeight)"
La propriété document.body.scrollHeight permet d'obtenir la hauteur inférieure du document HTML actuel.
Déplacer vers les coordonnées relatives à l'emplacement actuel
"window.scrollBy(0, 700)"
Passer à la position absolue
"window.scrollTo(0, 1200)"
La position absolue de toute la fenêtre est x=0, y=1200
pilote.close()
Fonction : Fermer l'onglet ou la fenêtre en cours
pilote.quit()
Fonction : Fermez tout le navigateur
pilote.forward()
Fonction : Aller à la page suivante
pilote.back()
Fonction : Revenir à la page précédente
driver.set_window_size()
Fonction : Définir la taille de la fenêtre du navigateur
Paramètres : largeur et hauteur
driver.implicitly_wait()
Fonction : attend implicitement la durée spécifiée que vous passez
④ module switch_to
méthode
pilote.switch_to.window()
- Fonction : Ouvrir une fenêtre (juste une fenêtre de plus sur le bureau)
- Paramètres : handle de fenêtre ou nom de la fenêtre
driver.switch_to.new_window()
- Fonction : ouvrir un nouvel onglet ou une nouvelle fenêtre
- Paramètres : 'tab' nouvel onglet, 'window' nouvelle fenêtre
2. Objet WebElement
① Attribut
balise.texte
Obtenez le contenu du texte dans l'étiquette
tag.id
Obtenir l'ID du nœud
tag.emplacement
Obtenir la position relative d'un nœud dans la page
tag.tag_name
Obtenez le nom de l'étiquette du nœud
taille du tag
Obtenez la largeur et la hauteur du nœud
② Méthode
tag.send_keys()
Fonction : envoyer la valeur à l'élément de balise spécifié
Paramètres : la valeur clé que vous souhaitez envoyer
tag.clear()
Fonction : Effacer le contenu envoyé dans l'élément
tag.clic()
Fonction : Cliquez sur cet élément
tag.get_attribute()
Fonction : obtenir la valeur d'attribut du nœud d'étiquette
Paramètre : le nom de l'attribut que vous souhaitez obtenir
tag.find_element()
Fonction : Vous pouvez continuer à rechercher la balise souhaitée parmi les balises positionnées.
L'objet WebDriver et l'objet WebElement ont tous deux cette méthode
3. Objet ActionChains
① Instancier les actions des objets ActionChains
Chaînes d'action (pilote)
② Méthode
actions.move_to_element()
Fonction : Déplacer la souris sur l'élément spécifié
Paramètres : élément spécifié
actions.send_kyes_to_element()
Fonction : Saisir une valeur dans l'élément
Paramètres : élément, valeur
actions.clic()
Fonction : cliquer sur l'élément
Paramètres : l'élément sur lequel vous souhaitez cliquer
actions.drag_and_drop()
Fonction : faites glisser l'élément source vers la position de l'élément cible
Paramètres : la position initiale de la source, la position après le déplacement de la cible
actions.perform()
Fonction : Exécuter l'action définie
4. Objet WebDriverWait
① Instanciez l'attente de l'objet WebDriverWait
à partir de selenium.webdriver.support.ui importer WebDriverWait
C'est un objet en attente et doit être transmis dans l'objet pilote et le temps d'attente.
attendre = WebDriverWait (pilote, 100)
② Méthode
jusqu'à()
Fonction : passez la condition d'attente et la fonction attendra que la condition se produise ou que le temps maximum que vous avez défini auparavant soit atteint avant de quitter l'attente.
Paramètres : conditions attendues excepted_conditions
(3) module conditions_attendues
1. Fonction conditionnelle attendue
présence_of_element_located()
Fonction : Déterminer si l'élément attendu apparaît
Paramètres : transmettre un localisateur qui est un tuple, par exemple (By.ID, 'id_name')
element_to_be_clickable()
Fonction : Déterminer si l'élément attendu apparaît et peut être cliqué
Paramètres : transmettre un localisateur ou un objet WebElement
alert_is_present()
Fonction : Déterminer si une boîte d'avertissement apparaît