Résumé de l'utilisation du sélénium Python

Introduction et installation:

Selenium, en tant qu'outil de test automatisé, est principalement utilisé pour les tests de pages Web. Dans le robot d'exploration Python, nous pouvons utiliser cet outil pour opérer sur des éléments de page Web, tels que le démarrage du navigateur, l'ouverture de la page Web, l'avant et l'arrière, les éléments de positionnement, la saisie au clavier Avec l'opération de clic de souris etc. On peut dire que tant que l'opération peut être effectuée dans le navigateur, nous pouvons utiliser du sélénium pour obtenir
OK. Tout d'abord, nous devons installer le sélénium.
Si Python et pip sont installés sur votre ordinateur, il suffit d'appeler

pip installer le sélénium

Cette commande dessus une
fois l'installation terminée, nous devons tester

from selenium import webdriver
调用FireFox浏览器
broswer=webdriver.Firefox()
打开百度
broswer.get('http://www.baidu.com')
显示百度的源代码
print(broswer.page_source)

De cette façon, nous pouvons ouvrir la page de Baidu via Firefox et afficher le code source de Baidu.
PS: étant donné que la page est ouverte via le navigateur, le code source à ce moment est le code source après le rendu JS.
Si une erreur se produit lorsque le code est en cours d'exécution, le système ne peut pas démarrer Firefox et le code d'erreur est

selenium.common.exceptions.WebDriverException: Message: l'exécutable 'geckodriver' doit être dans PATH.

Raison 1: La version de sélénium est trop basse pour prendre en charge la version correspondante de Firefox; Solution: Téléchargez le dernier sélénium et installez-le (cette raison est généralement peu probable)
Raison 2. Vous utilisez une version de Firefox 47 ou supérieure, vous avez besoin Téléchargez le pilote tiers, geckodriver, puis placez geckodriver.exe dans le même répertoire de python.exe ou ajoutez le répertoire où se trouve geckodriver.exe à la variable d'environnement.

Fonctionnement des éléments

Lorsque l'installation du sélénium est terminée, nous pouvons l'utiliser pour faire fonctionner le site Web
Premièrement, nous savons que les pages sont reliées entre elles par une variété d'éléments, vous devez modifier les pages, nous devons d'abord localiser votre besoin Éléments de page Web modifiés.
Écrivez la description de l'image ici

Prenons Baidu comme exemple, nous pouvons voir que le champ de recherche de Baidu est un tel élément

input id = "kw" name = "wd" class = "s_ipt" value = "" maxlength = "255" autocomplete = "off"

Ensuite, nous pouvons localiser cet élément, puis actionner la zone de recherche

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

broswer=webdriver.Firefox()
broswer.get('http://www.baidu.com')
通过id定位百度搜索框
searchItem=broswer.find_element_by_id('kw')
等待3秒
time.sleep(3)
向搜索框发送文字:图片
searchItem.send_keys('图片')
点击回车
searchItem.send_keys(Keys.ENTER)
显示当前页面的源代码
print(broswer.page_source)

Exécutez le code, le système ouvrira d'abord un navigateur Firefox, et le navigateur ouvrira automatiquement la page Baidu, attendez trois secondes plus tard, la zone de recherche entrera automatiquement le texte et cliquez sur Enter
Why should

temps de sommeil (3)

Cette opération, car la page Web prend du temps à se charger, nous devons nous assurer que tous les éléments de la page Web sont chargés avant de pouvoir continuer.

Tout à l'heure, nous avons utilisé la touche Entrée pour terminer la recherche, puis nous allons opérer en cliquant sur le bouton de recherche

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

broswer=webdriver.Firefox()
broswer.get('http://www.baidu.com')
通过id定位百度搜索框
searchItem=broswer.find_element_by_id('kw')
通过class定位“百度一下”按钮
searchButton=broswer.find_element_by_class_name('bg s_btn')
等待3time.sleep(3)
向搜索框发送文字:图片
searchItem.send_keys('图片')
点击搜索按钮
searchButton.click()
显示当前页面的源代码
print(broswer.page_source)

Le code ci-dessus avant que le code puisse être atteint et la même opération, mais nous devons terminer la recherche en cliquant sur le bouton de recherche
Écrivez la description de l'image ici
qui est la page une fois la recherche terminée

En ce qui concerne la méthode de positionnement des éléments de page dans Selenium , vous pouvez vous référer à ce blog
. Huit méthodes courantes de positionnement des éléments Selenium Webdriver

Changement de trame

La page contient souvent beaucoup de framework iframe, de nombreux éléments ont été placés dans le framework
, par exemple, nous devons simuler l'espace QQ de la page de destination

Écrivez la description de l'image ici

Nous nous connectons en cliquant sur l'avatar QQ connecté. D'abord, j'ai obtenu l'identifiant d'élément de l'avatar comme "img_out_1356306040", puis nous pouvons continuer.

from selenium import webdriver
import time

broswer=webdriver.Firefox()
broswer.get(url='https://i.qq.com')
time.sleep(2)
broswer.find_element_by_id('img_out_1356306040').click()

Lorsque nous exécutons le programme, l'ordinateur aura cette erreur

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="img_out_1356306040"]

Ce code indique qu'aucun élément de ce type avec id = "img_out_1356306040" n'a été trouvé.

Examinons de plus près la composition de cette page
Écrivez la description de l'image ici

On peut constater que la position de l'avatar de connexion est placée dans un cadre iframe avec id = "login_frame", nous devons donc d'abord localiser ce cadre, puis nous pouvons localiser des éléments spécifiques dans le cadre

from selenium import webdriver
import time

broswer=webdriver.Firefox()
broswer.get(url='https://i.qq.com')
time.sleep(2)
定位到'login_frame'框架
broswer.switch_to.frame('login_frame')
broswer.find_element_by_id('img_out_1356306040').click()
返回至默认框架
broswer.switch_to.default_content()
print(broswer.page_source)

Exécutez le code ci-dessus, nous pouvons nous connecter avec succès à l'espace QQ

Pour résumer:

Ce qui précède est la simple utilisation du sélénium. Nous pouvons utiliser le sélénium pour effectuer diverses opérations sur les pages Web. Je pense que les opérations que le navigateur peut effectuer sont comme si elles pouvaient être effectuées via le sélénium. En bref, c'est un outil très puissant. Grâce au sélénium, nous pouvons encore plus Utiliser le robot d'exploration python pour analyser les données Internet

Je suppose que tu aimes

Origine blog.csdn.net/mrliqifeng/article/details/78199407
conseillé
Classement