Table des matières
Explication détaillée de l'utilisation du sélénium
webdriver peut être considéré comme le pilote du navigateur. Pour piloter le navigateur, webdriver doit être utilisé. . Voici Chrome à titre d'exemple
Maison interface Web js tutoriel Explication détaillée sur l'utilisation du sélénium

Explication détaillée sur l'utilisation du sélénium

Jun 11, 2018 pm 05:53 PM
selenium

Explication détaillée de l'utilisation du sélénium


*Le sélénium est principalement utilisé pour les tests automatisés et prend en charge plusieurs navigateurs. Il est principalement utilisé dans les robots d'exploration pour résoudre les problèmes de rendu JavaScript.
Simulez le navigateur pour charger la page Web. Lorsque les requêtes et urllib ne peuvent pas obtenir le contenu de la page Web normalement*

1 Déclarez l'objet navigateur
Notez un, le nom du fichier Python Ou. ne nommez pas le nom du package sélénium, ce qui entraînerait l'impossibilité d'importer

from selenium import webdriver
Copier après la connexion

webdriver peut être considéré comme le pilote du navigateur. Pour piloter le navigateur, webdriver doit être utilisé. . Voici Chrome à titre d'exemple

browser = webdriver.Chrome()
Copier après la connexion

2. Visitez la page et obtenez le html de la page Web

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
print(browser.page_source) # browser.page_source是获取网页的全部htmlbrowser.close()
Copier après la connexion

3.
Élément unique

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element_by_id('q')
input_second = browser.find_element_by_css_selector('#q')
input_third = browser.find_element_by_xpath('//*[@id="q"]')
print(input_first,input_second,input_third)
browser.close()
Copier après la connexion

Méthodes de recherche communes

find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
Copier après la connexion

Vous pouvez également utiliser la méthode générale

from selenium import webdriverfrom selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element(BY.ID,'q')#第一个参数传入名称,第二个传入具体的参数print(input_first)
browser.close()
Copier après la connexion

Éléments multiples, éléments multiples s

input_first = browser.find_elements_by_id('q')
Copier après la connexion

4. Interaction avec les éléments - entrez des mots-clés dans le champ de recherche pour la recherche automatique

from selenium import webdriver
import timebrowser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')#找到搜索框input.send_keys('iPhone')#传送入关键词time.sleep(5)
input.clear()#清空搜索框input.send_keys('男士内裤')
button = browser.find_element_by_class_name('btn-search')#找到搜索按钮button.click()
Copier après la connexion

Plus d'opérations : http://selenium-python. readthedocs.io/api.html #module-selenium.webdriver.remote.webelement#Peut avoir des attributs, des captures d'écran, etc.

5. Actions interactives, piloter le navigateur pour effectuer des actions, simuler le glisser et supprimer des actions et attacher des actions à la chaîne d'actions Exécution en série

from selenium import webdriverfrom selenium.webdriver import ActionChains#引入动作链browser = webdriver.Chrome()
url = 'http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'browser.get(url)
browser.switch_to.frame('iframeResult')#切换到iframeResult框架source = browser.find_element_by_css_selector('#draggable')#找到被拖拽对象target = browser.find_element_by_css_selector('#droppable')#找到目标actions = ActionChains(browser)#声明actions对象actions.drag_and_drop(source, target)
actions.perform()#执行动作
Copier après la connexion

Plus d'opérations : http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common .action_chains

6. Exécuter JavaScript
Certaines actions peuvent ne pas fournir d'API, comme la liste déroulante de la barre de progression. À l'heure actuelle, nous pouvons exécuter JavaScript via le code

<. 🎜>
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(&#39;https://www.zhihu.com/explore&#39;)
browser.execute_script(&#39;window.scrollTo(0, document.body.scrollHeight)&#39;)
browser.execute_script(&#39;alert("To Bottom")&#39;)
Copier après la connexion
7. Obtenir des informations sur l'élément

Obtenir les attributs

from selenium import webdriverfrom selenium.webdriver import ActionChains
browser = webdriver.Chrome()
url = &#39;https://www.zhihu.com/explore&#39;browser.get(url)
logo = browser.find_element_by_id(&#39;zh-top-link-logo&#39;)#获取网站logoprint(logo)
print(logo.get_attribute(&#39;class&#39;))
browser.close()
Copier après la connexion
Obtenir la valeur du texte

from selenium import webdriver
browser = webdriver.Chrome()
url = &#39;https://www.zhihu.com/explore&#39;browser.get(url)
input = browser.find_element_by_class_name(&#39;zu-top-add-question&#39;)
print(input.text)#input.text文本值browser.close()
Copier après la connexion
Obtenir l'identifiant, la position, le nom de l'étiquette, la taille

from selenium import webdriver
browser = webdriver.Chrome()
url = &#39;https://www.zhihu.com/explore&#39;browser.get(url)
input = browser.find_element_by_class_name(&#39;zu-top-add-question&#39;)
print(input.id)#获取idprint(input.location)#获取位置print(input.tag_name)#获取标签名print(input.size)#获取大小browser.close()
Copier après la connexion

8. Fonctionnement du cadre le cadre est équivalent à une page Web indépendante. Si vous recherchez une sous-catégorie dans le cadre réseau de la catégorie parent, vous devez basculer vers le cadre de la sous-catégorie. Si la sous-catégorie recherche la catégorie parent, vous devez également passer à

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementException
browser = webdriver.Chrome()
url = &#39;http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable&#39;browser.get(url)
browser.switch_to.frame(&#39;iframeResult&#39;)
source = browser.find_element_by_css_selector(&#39;#draggable&#39;)
print(source)try:
    logo = browser.find_element_by_class_name(&#39;logo&#39;)except NoSuchElementException:
    print(&#39;NO LOGO&#39;)
browser.switch_to.parent_frame()
logo = browser.find_element_by_class_name(&#39;logo&#39;)
print(logo)
print(logo.text)
Copier après la connexion

9 En attente

Attente implicite

Lorsque l'attente implicite est utilisée. pour exécuter le test, si WebDriver ne trouve pas l'élément dans le DOM, il continuera à attendre au-delà du temps défini. Ensuite, une exception indiquant que l'élément est introuvable est levée,
En d'autres termes, lorsque l'élément est trouvé. ou l'élément n'apparaît pas immédiatement, l'attente implicite attendra un certain temps avant de chercher dans le DOM. Le temps par défaut est 0

from selenium import webdriver
browser = webdriver.Chrome()
browser.implicitly_wait(10)#等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回browser.get(&#39;https://www.zhihu.com/explore&#39;)
input = browser.find_element_by_class_name(&#39;zu-top-add-question&#39;)
print(input)
Copier après la connexion
Attente explicite

Spécifiez une condition d'attente et une attente maximale. temps. Le programme jugera si la condition est satisfaite dans le temps d'attente. Si elle est satisfaite, elle reviendra. Si elle n'est pas satisfaite, elle continuera à attendre. Si le temps est dépassé, elle lancera une exception.

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.get(&#39;https://www.taobao.com/&#39;)wait = WebDriverWait(browser, 10)
input = wait.until(EC.presence_of_element_located((By.ID, &#39;q&#39;)))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, &#39;.btn-search&#39;)))
print(input, button)
Copier après la connexion
Détails : http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expected_conditions
title_is 标题是某内容
title_contains 标题包含某内容
presence_of_element_located 元素加载出,传入定位元组,如(By.ID, &#39;p&#39;)
visibility_of_element_located 元素可见,传入定位元组
visibility_of 可见,传入元素对象
presence_of_all_elements_located 所有元素加载出
text_to_be_present_in_element 某个元素文本包含某文字
text_to_be_present_in_element_value 某个元素值包含某文字
frame_to_be_available_and_switch_to_it frame加载并切换
invisibility_of_element_located 元素不可见
element_to_be_clickable 元素可点击
staleness_of 判断一个元素是否仍在DOM,可判断页面是否已经刷新
element_to_be_selected 元素可选择,传元素对象
element_located_to_be_selected 元素可选择,传入定位元组
element_selection_state_to_be 传入元素对象以及状态,相等返回True,否则返回False
element_located_selection_state_to_be 传入定位元组以及状态,相等返回True,否则返回False
alert_is_present 是否出现Alert
Copier après la connexion

11. - Réaliser le mouvement avant et arrière du navigateur pour parcourir différentes pages Web

import timefrom selenium import webdriver
browser = webdriver.Chrome()
browser.get(&#39;https://www.baidu.com/&#39;)
browser.get(&#39;https://www.taobao.com/&#39;)
browser.get(&#39;https://www.python.org/&#39;)
browser.back()time.sleep(1)
browser.forward()
browser.close()
Copier après la connexion
12 Cookies

La gestion des onglets ajoute un navigateur. fenêtre
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(&#39;https://www.zhihu.com/explore&#39;)
print(browser.get_cookies())
browser.add_cookie({&#39;name&#39;: &#39;name&#39;, &#39;domain&#39;: &#39;www.zhihu.com&#39;, &#39;value&#39;: &#39;germey&#39;})
print(browser.get_cookies())
browser.delete_all_cookies()
print(browser.get_cookies())
Copier après la connexion

import timefrom selenium import webdriver
browser = webdriver.Chrome()
browser.get(&#39;https://www.baidu.com&#39;)
browser.execute_script(&#39;window.open()&#39;)
print(browser.window_handles)
browser.switch_to_window(browser.window_handles[1])
browser.get(&#39;https://www.taobao.com&#39;)time.sleep(1)
browser.switch_to_window(browser.window_handles[0])
browser.get(&#39;http://www.fishc.com&#39;)
Copier après la connexion
13. Gestion des exceptions

from selenium import webdriver
browser = webdriver.Chrome()
browser.get(&#39;https://www.baidu.com&#39;)
browser.find_element_by_id(&#39;hello&#39;)from selenium import webdriverfrom selenium.common.exceptions import TimeoutException, NoSuchElementException
browser = webdriver.Chrome()try:
    browser.get(&#39;https://www.baidu.com&#39;)except TimeoutException:
    print(&#39;Time Out&#39;)try:
    browser.find_element_by_id(&#39;hello&#39;)except NoSuchElementException:
    print(&#39;No Element&#39;)finally:
    browser.close()
Copier après la connexion
Cet article explique l'utilisation du sélénium Pour plus de contenu connexe, veuillez suivre le site Web chinois de php. .

Recommandations associées :

Comment effectuer une conversion 2D via CSS3


Explication détaillée des variables et de la portée JavaScript


Explication détaillée des paramètres de la méthode $.ajax()

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Apprenez à installer Selenium facilement à l'aide de PyCharm : guide d'installation et de configuration de PyCharm Apprenez à installer Selenium facilement à l'aide de PyCharm : guide d'installation et de configuration de PyCharm Jan 04, 2024 pm 09:48 PM

Tutoriel d'installation de PyCharm : apprenez facilement à installer Selenium, des exemples de code spécifiques sont nécessaires. En tant que développeurs Python, nous devons souvent utiliser diverses bibliothèques et outils tiers pour terminer le développement de projets. Parmi eux, Selenium est une bibliothèque très couramment utilisée pour les tests automatisés et les tests d'interface utilisateur des applications Web. En tant qu'environnement de développement intégré (IDE) pour le développement Python, PyCharm nous offre un moyen pratique et rapide de développer du code Python, alors comment

Développement Laravel : Comment utiliser Laravel Dusk et Selenium pour tester le navigateur ? Développement Laravel : Comment utiliser Laravel Dusk et Selenium pour tester le navigateur ? Jun 14, 2023 pm 01:53 PM

Développement Laravel : Comment utiliser LaravelDusk et Selenium pour tester le navigateur ? À mesure que les applications Web deviennent plus complexes, nous devons nous assurer que toutes leurs parties fonctionnent correctement. Les tests de navigateur sont une méthode de test courante utilisée pour garantir l'exactitude et la stabilité d'une application sous différents navigateurs. Dans le développement Laravel, vous pouvez utiliser LaravelDusk et Selenium pour tester le navigateur. Cet article expliquera comment utiliser ces deux outils pour tester

Utilisation de Selenium et PhantomJS dans le robot Scrapy Utilisation de Selenium et PhantomJS dans le robot Scrapy Jun 22, 2023 pm 06:03 PM

Utilisation de Selenium et PhantomJSScrapy dans le robot d'exploration Scrapy Scrapy est un excellent framework de robot d'exploration Web sous Python et a été largement utilisé dans la collecte et le traitement de données dans divers domaines. Dans la mise en œuvre du robot, il est parfois nécessaire de simuler les opérations du navigateur pour obtenir le contenu présenté par certains sites Web. Dans ce cas, Selenium et PhantomJS sont nécessaires. Selenium simule les opérations humaines sur le navigateur, nous permettant d'automatiser les tests d'applications Web

Comment utiliser Selenium pour les tests Web automatisés Comment utiliser Selenium pour les tests Web automatisés Aug 02, 2023 pm 07:43 PM

Présentation de l'utilisation de Selenium pour les tests d'automatisation Web : les tests d'automatisation Web sont une partie essentielle du processus de développement logiciel moderne. Selenium est un puissant outil de test automatisé qui peut simuler les opérations des utilisateurs dans un navigateur Web et mettre en œuvre des processus de test automatisés. Cet article expliquera comment utiliser Selenium pour les tests d'automatisation Web et sera accompagné d'exemples de code pour aider les lecteurs à démarrer rapidement. Préparation de l'environnement Avant de commencer, vous devez installer la bibliothèque Selenium et le pilote du navigateur Web

Utilisez la combinaison de Java, Selenium et OpenCV pour résoudre le problème de la vérification des curseurs dans les tests automatisés. Utilisez la combinaison de Java, Selenium et OpenCV pour résoudre le problème de la vérification des curseurs dans les tests automatisés. May 08, 2023 pm 08:16 PM

1. Idée de vérification du curseur L'objet curseur de l'objet testé ressemble à ceci. Relativement parlant, il s'agit d'un formulaire relativement simple. Vous devez faire glisser le puzzle de gauche via le curseur ci-dessous et l'intégrer dans l'emplacement vide de droite pour terminer la vérification. Pour automatiser ce processus de vérification, le point clé est de déterminer la distance de glissement du curseur. Selon l'analyse ci-dessus, le point clé de la vérification est de déterminer la distance de glissement du curseur. Mais une exigence apparemment simple n’est pas simple à remplir. Si vous utilisez la logique naturelle pour analyser ce processus, il peut être décomposé comme suit : 1. Localisez la position du puzzle sur la gauche Puisque la forme et la taille du puzzle sont fixes, il vous suffit de localiser la distance qui les sépare. bordure gauche et le côté gauche de l’image d’arrière-plan. (En fait, dans cet exemple, la position de départ du puzzle est également fixe, économisant

Exploration efficace des données de pages Web : utilisation combinée de PHP et Selenium Exploration efficace des données de pages Web : utilisation combinée de PHP et Selenium Jun 15, 2023 pm 08:36 PM

Avec le développement rapide de la technologie Internet, les applications Web sont de plus en plus utilisées dans notre travail et notre vie quotidienne. Dans le processus de développement d’applications Web, l’exploration des données des pages Web est une tâche très importante. Bien qu’il existe de nombreux outils de web scraping sur le marché, ces outils ne sont pas très efficaces. Afin d'améliorer l'efficacité de l'exploration des données des pages Web, nous pouvons utiliser la combinaison de PHP et Selenium. Tout d’abord, nous devons comprendre ce que sont PHP et Selenium. PHP est un puissant

Comment installer le sélénium dans pycharm Comment installer le sélénium dans pycharm Dec 08, 2023 pm 02:32 PM

Étapes pour installer Selenium avec pycharm : 1. Ouvrez PyCharm ; 2. Sélectionnez "Fichier", "Paramètres", "Projet : [Nom du projet]" dans la barre de menu ; 3. Sélectionnez Interpréteur de projet ; l'onglet « + » ; 5. Recherchez Selenium dans la fenêtre contextuelle ; 6. Recherchez Selenium et cliquez sur le bouton « Installer » à côté de celui-ci ; 7. Attendez la fin de l'installation ; 8. Fermez la boîte de dialogue des paramètres.

Comment utiliser Selenium pour explorer les données de pages Web en Python Comment utiliser Selenium pour explorer les données de pages Web en Python May 09, 2023 am 11:05 AM

1. Qu'est-ce que Selenium Web Crawler est une technique très utile en programmation Python, qui vous permet d'obtenir automatiquement des données sur les pages Web. Selenium est un outil de test automatisé qui peut simuler les opérations des utilisateurs dans le navigateur, telles que cliquer sur des boutons, remplir des formulaires, etc. Contrairement aux bibliothèques d'exploration couramment utilisées telles que BeautifulSoup et les requêtes, Selenium peut gérer le contenu chargé dynamiquement par JavaScript. Par conséquent, Selenium est un choix très approprié pour les données qui doivent être obtenues en simulant l'interaction de l'utilisateur. 2. Installez Selenium Pour utiliser Selenium, vous devez d'abord l'installer. Vous pouvez utiliser la commande pip pour installer

See all articles