web-dev-qa-db-fra.com

Comment utiliser Selenium avec Python?

Comment configurer Selenium pour qu'il fonctionne avec Python? Je veux juste écrire/exporter des scripts en Python, puis les exécuter. Existe-t-il des ressources qui m'apprendront comment faire cela? J'ai essayé de googler, mais les informations que j'ai trouvées faisaient référence à une version obsolète de Selenium (RC) ou à une version obsolète de Python.

48
Carpetfizz

Vous voulez dire Selenium WebDriver? Hein ....

Prérequis: Installer Python en fonction de votre système d'exploitation

Installer avec la commande suivante

pip install -U Selenium

Et utilisez ce module dans votre code

from Selenium import webdriver

Vous pouvez également utiliser plusieurs des éléments suivants selon vos besoins

from Selenium.webdriver.common.by import By
from Selenium.webdriver.support.ui import Select
from Selenium.common.exceptions import NoSuchElementException

Voici une réponse mise à jour

Je vous recommande de lancer le script sans IDE ... Voici mon approche

  1. USE IDE pour trouver xpath de l'objet/de l'élément
  2. Et utilisez find_element_by_xpath (). Click ()

Un exemple ci-dessous montre l'automatisation de la page de connexion

#ScriptName : Login.py
#---------------------
from Selenium import webdriver

#Following are optional required
from Selenium.webdriver.common.by import By
from Selenium.webdriver.support.ui import Select
from Selenium.common.exceptions import NoSuchElementException

baseurl = "http://www.mywebsite.com/login.php"
username = "admin"
password = "admin"

xpaths = { 'usernameTxtBox' : "//input[@name='username']",
           'passwordTxtBox' : "//input[@name='password']",
           'submitButton' :   "//input[@name='login']"
         }

mydriver = webdriver.Firefox()
mydriver.get(baseurl)
mydriver.maximize_window()

#Clear Username TextBox if already allowed "Remember Me" 
mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).clear()

#Write Username in Username TextBox
mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).send_keys(username)

#Clear Password TextBox if already allowed "Remember Me" 
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).clear()

#Write Password in password TextBox
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).send_keys(password)

#Click Login button
mydriver.find_element_by_xpath(xpaths['submitButton']).click()

Il y a une autre façon de trouver xpath de n'importe quel objet -

  1. Installer des addons Firebug et Firepath dans Firefox
  2. Ouvrir l'URL dans Firefox
  3. Appuyez sur F12 pour ouvrir l'instance de développement Firepath.
  4. Sélectionnez Firepath dans le volet de navigateur ci-dessous et choisissez select par "xpath".
  5. Déplacer le curseur de la souris sur l'élément de la page Web
  6. dans la zone de texte xpath, vous obtiendrez xpath d'un objet/élément.
  7. Copier Collez xpath au script.

Script de lancement -

python Login.py

Vous pouvez également utiliser un sélecteur CSS au lieu de xpath. Les sélecteurs CSS sont légèrement plus rapides que xpath dans la plupart des cas, et sont généralement préférés à xpath (s'il n'y a pas d'attribut ID sur les éléments avec lesquels vous interagissez).

Firepath peut également capturer le localisateur de l'objet en tant que sélecteur CSS si vous déplacez le curseur sur l'objet. Vous devrez mettre à jour votre code pour utiliser la méthode équivalente de recherche par sélecteur CSS à la place -

find_element_by_css_selector(css_selector) 
72
Abhishek Kulkarni

Il existe de nombreuses sources pour Selenium - en voici une bonne pour une utilisation simple Selenium , et voici un exemple d'extrait de code aussi Exemples de Selenium

Vous pouvez trouver beaucoup de bonnes sources pour utiliser Selenium, ce n'est pas si difficile de le configurer et de commencer à l'utiliser.

7
Serial