Looking for selenium-webdriver Keywords? Try Ask4Keywords

selenium-webdriverLocalización de elementos web


Sintaxis

  • ByChained (params By [] bys)

Observaciones

Los artículos se encuentran en Selenium mediante el uso de localizadores y la clase By . Para realizar un robusto proyecto de automatización con Selenium, se deben usar localizadores para elementos web de forma inteligente. Los localizadores deben ser descriptivos, únicos y es poco probable que cambien, por lo que no obtendrá falsos positivos en las pruebas, por ejemplo. La prioridad es utilizar:

  1. ID : ya que es único y obtendrá exactamente el elemento que desea.
  2. Nombre de clase : es descriptivo y puede ser único en un contexto dado.
  3. CSS ( mejor rendimiento que xpath ): para selectores más complicados.
  4. XPATH : donde no se puede usar CSS ( XPATH Axis ), por ejemplo, div::parent .

El resto de los localizadores son propensos a cambios o renderización, y preferiblemente deben evitarse.

Regla de oro: si su código no puede localizar un elemento en particular, una razón podría ser que su código no ha esperado a que se descarguen todos los elementos de DOM. Considere pedirle a su programa que "espere" por un corto período de tiempo (intente de 3 a 5 segundos y luego aumente lentamente según sea necesario) antes de buscar dicho elemento. Aquí hay un ejemplo en Python, tomado de esta pregunta :

from selenium import webdriver
import time

browser = webdriver.Firefox()
browser.get("https://app.website.com")

reports_element = browser.find_element_by_xpath("//button[contains(text(), 'Reports')]")

# Element not found! Try giving time for the browser to download all DOM elements:
time.sleep(10)

reports_element = browser.find_element_by_xpath("//button[contains(text(), 'Reports')]")
# This returns correct value!

Localización de elementos web Ejemplos relacionados