Maison  >  Article  >  développement back-end  >  Comment utiliser Selenium WebDriver en Python

Comment utiliser Selenium WebDriver en Python

PHPz
PHPzavant
2023-05-08 22:31:562373parcourir

    Premiers pas avec Selenium WebDriver

    1. Qu'est-ce que Selenium WebDriver

    WebDriver pilote le navigateur de manière localisée, tout comme l'utilisateur le fait localement ou sur une machine distante utilisant le serveur Selenium, ce qui marque le navigateur Un grand pas en avant en automatisation.

    Selenium WebDriver fait référence à l'implémentation de la liaison de langage et de chaque code de contrôle du navigateur. Ceci est souvent appelé WebDriver.

    Selenium WebDriver est une recommandation du W3C.

    • WebDriver est conçu pour être une interface de programmation simple et concise.

    • WebDriver est une API simple orientée objet.

    • Il pilote efficacement le navigateur.

    2. Installez Selenium WebDriver

    L'environnement utilisé dans cet article est le navigateur python3.11 + win10 64 bits + Firefox, donc le pilote de navigateur utilisé dans cet article est le geckodriver de Firefox. choisissez Utilisez simplement votre propre pilote de navigateur correspondant.

    2.1 Installez la bibliothèque de classes Selenium

    Le moyen le plus simple est de l'installer directement à l'aide de pip

    pip install selenium

    Comment utiliser Selenium WebDriver en Python

    2.2 Installez le pilote du navigateur

    Grâce à WebDriver, Selenium prend en charge tous les principaux navigateurs du marché, tels que Chrome, Firefox , et Internet Explorer, Edge et Safari. WebDriver essaie d'utiliser la prise en charge d'automatisation intégrée du navigateur pour piloter le navigateur.

    Étant donné que toutes les implémentations de pilotes, à l'exception d'Internet Explorer, sont fournies par les fournisseurs de navigateurs eux-mêmes, elles ne sont pas incluses dans le Selenium standard. distribution. Ces pilotes sont inclus. Cette section présente les exigences de base pour l'utilisation de différents navigateurs.

    Ouvrez l'URL suivante https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/install_drivers/

    Trouvez le. Lien de téléchargement du pilote de navigateur, vous pouvez voir ici plusieurs pilotes de navigateur pris en charge par Selenium. Téléchargez simplement le pilote correspondant pour le navigateur installé sur votre ordinateur, choisissez donc le pilote Firefox.

    Comment utiliser Selenium WebDriver en Python

    Cliquez sur le lien de téléchargement du pilote Firefox et accédez à la page des versions de github. Vous pouvez voir les pilotes de chaque version. Cet article est win10 64 bits. J'ai choisi geckodriver-v0.32.0-win-aarch74.zip. .Selon le vôtre, sélectionnez simplement le fichier correspondant dans votre système.

    Comment utiliser Selenium WebDriver en Python

    Après décompression, il s'agit d'un fichier exécutable, comme indiqué ci-dessous :

    Comment utiliser Selenium WebDriver en Python

    2.3 Configurer les variables d'environnement

    Ouvrir Poste de travail->Propriétés->Paramètres système avancés->Variables d'environnement, double- cliquez sur chemin, cliquez sur Nouveau, entrez le répertoire où se trouve le pilote geckodriver.exe, puis cliquez complètement sur OK.

    Comment utiliser Selenium WebDriver en Python

    Comment utiliser Selenium WebDriver en Python

    Comment utiliser Selenium WebDriver en Python

    Vérification simple, ouvrez une nouvelle console, entrez le nom du fichier du pilote, voici geckodriver.exe, s'il peut être ouvert normalement

    Comment utiliser Selenium WebDriver en Python

    Bien sûr, il y a Yeluzi, juste placez le pilote directement dans le dossier Scripts de votre répertoire Python et vous pourrez l'ouvrir directement lors de l'exécution du script Python. Par exemple, mon répertoire est D:PythonPython311Scripts

    3. Écrivez le premier script Selenium

    Après avoir terminé l'installation de Selenium et l'installation du pilote, vous pouvez commencer à écrire des scripts Selenium.

    Tout ce que Selenium fait, c'est envoyer des commandes au navigateur pour effectuer certaines actions ou envoyer des demandes d'informations. La plupart des choses que vous ferez avec Selenium sont une combinaison des commandes de base suivantes :

    1 Utiliser l'instance de pilote ouvre une session

    .
     driver = webdriver.Firefox()

    2. Effectuer des opérations sur le navigateur
    Dans cet exemple, nous naviguons vers une page Web.

     driver.get("https://www.selenium.dev/selenium/web/web-form.html")

    3. Demander des informations sur le navigateur
    Vous pouvez demander une série d'informations sur le navigateur, y compris les poignées de fenêtre, la taille/la position du navigateur. , cookies, alertes, etc.

     title = driver.title

    4. Construisez une stratégie d'attente
    La synchronisation du code avec l'état actuel du navigateur est l'un des plus grands défis de Selenium, et bien le faire est un sujet avancé. assurez-vous que l'élément est sur la page avant d'essayer de le positionner et qu'il est interactif avant d'essayer d'interagir avec lui. L'attente implicite est rarement la meilleure solution, mais elle est plus simple à démontrer ici

     driver.implicitly_wait(0.5)

    5.发送命令 查找元素
    大多数Selenium会话中的主要命令都与元素相关, 如果不先找到元素, 就无法与之交互

     text_box = driver.find_element(by=By.NAME, value="my-text")
     submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

    6.操作元素
    对于一个元素, 只有少数几个操作可以执行, 但您将经常使用它们

     text_box.send_keys("Selenium")
     submit_button.click()

    7.获取元素信息

     value = message.text

    8.结束会话
    这将结束驱动程序进程, 默认情况下, 该进程也会关闭浏览器. 无法向此驱动程序实例发送更多命令

     driver.quit()

    让我们将这8个部分组合成一个完整的脚本, 包括需要使用的库

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    def test_eight_components():
        driver = webdriver.Firefox()
    
        driver.get("https://www.selenium.dev/selenium/web/web-form.html")
    
        title = driver.title
        assert title == "Web form"
    
        driver.implicitly_wait(0.5)
    
        text_box = driver.find_element(by=By.NAME, value="my-text")
        submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
    
        text_box.send_keys("Selenium")
        submit_button.click()
    
        message = driver.find_element(by=By.ID, value="message")
        value = message.text
        assert value == "Received!"
    
        driver.quit()

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer