web-dev-qa-db-fra.com

Python Selenium accédant à une source HTML

Comment obtenir la source HTML dans une variable utilisant le module Selenium avec Python?

Je voulais faire quelque chose comme ça:

from Selenium import webdriver
browser = webdriver.Firefox()
browser.get(raw_input("Enter URL: "))
if "whatever" in html_source:
    # Do something
else:
    # Do something else

Comment puis-je faire ceci? Je ne sais pas comment accéder à la source HTML.

85
user1008791

Vous devez appeler le page_source propriété. Voir ci-dessous.

from Selenium import webdriver
browser = webdriver.Firefox()
browser.get(raw_input("Enter URL: "))
html_source = browser.page_source
if "whatever" in html_source:
    # do something
else:
    # do something else
167
AutomatedTester

Avec Selenium2Library, vous pouvez utiliser get_source()

import Selenium2Library
s = Selenium2Library.Selenium2Library()
s.open_browser("localhost:7080", "firefox")
source = s.get_source()
5
Milanka

driver.page_source vous aidera à obtenir le code source de la page. Vous pouvez vérifier si le texte est présent dans la source de la page ou non.

from Selenium import webdriver
driver = webdriver.Firefox()
driver.get("some url")
if "your text here" in driver.page_source:
    print('Found it!')
else:
    print('Did not find it.')

Si vous souhaitez stocker le source de la page dans une variable, ajoutez la ligne ci-dessous après driver.get:

var_pgsource=driver.page_source

et remplacez la condition if par:

if "your text here" in var_pgsource:
3
Dhiraj

En utilisant le code source de la page, vous obtiendrez le code HTML complet.
Commencez donc par choisir le bloc de code ou la balise dans lequel vous souhaitez récupérer les données ou cliquer sur l'élément.

options = driver.find_elements_by_name_("XXX")
for option in options:
    if option.text == "XXXXXX":
        print(option.text)
        option.click()

Vous pouvez trouver les éléments par nom, XPath, id, lien et chemin CSS.

2
Mahesh Reddy Atla

Pour répondre à votre question sur l'obtention de l'URL à utiliser pour urllib, exécutez ce code JavaScript:

url = browser.execute_script("return window.location;")
1
Bob Evans