informatica:linux:selenium:ejemplos
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
informatica:linux:selenium:ejemplos [2020/05/01 07:42] – created jose | informatica:linux:selenium:ejemplos [2020/07/04 00:22] (current) – jose | ||
---|---|---|---|
Line 2: | Line 2: | ||
http:// | http:// | ||
- | ====== | + | ====== |
Una página web tiene un DOM con diferentes zonas dependientes, | Una página web tiene un DOM con diferentes zonas dependientes, | ||
- | Cogeremos como ejemplo la web de renfe y buscaremos un billete. | + | Cogeremos como ejemplo la web de instantbyte |
+ | |||
+ | Vamos a ir a http:// | ||
+ | |||
+ | Abrimos navegador: | ||
+ | ipython3 | ||
+ | |||
+ | < | ||
+ | from selenium import webdriver | ||
+ | from selenium.webdriver.firefox.options import Options | ||
+ | options = Options() | ||
+ | |||
+ | driver = webdriver.Firefox(options=options) | ||
+ | |||
+ | |||
+ | url = ' | ||
+ | driver.get(url) | ||
+ | </ | ||
+ | |||
+ | ====== Formato xpath ====== | ||
+ | Para seleccionar una zona usamos xpath, el formato es: | ||
+ | |||
+ | <span title=" | ||
+ | |||
+ | xpath = ' | ||
+ | o = driver.find_element_by_xpath(xpath) | ||
+ | |||
+ | Se puede modificar: | ||
+ | Contiene: | ||
+ | xpath = ' | ||
+ | |||
+ | |||
+ | ====== Seleccionar zona ====== | ||
+ | Nos ponemos en la web de instantbyte, | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | Queremos seleccionar el campo input de tipo text. Aquí nos podemos encontrar con varios problemas si el dom está mal hecho como es el caso sin id, puede haber mas de uno: | ||
+ | |||
+ | xpath = ' | ||
+ | o = driver.find_element_by_xpath(xpath) | ||
+ | |||
+ | Mostramos lo que ha seleccionado: | ||
+ | print(o.get_attribute(' | ||
+ | |||
+ | <input type=" | ||
+ | |||
+ | Ahora podemos enviar texto, hacer click.... Podemos borrar el contenido si suele tener algo: | ||
+ | o.clear() | ||
+ | Y enviamos lo que queramos | ||
+ | o.send_keys(" | ||
+ | Volvemos a borrar contenido: | ||
+ | o.clear() | ||
+ | |||
+ | ====== Click ====== | ||
+ | Abajo a la derecha tenemos el botón de "Lo tengo!" | ||
+ | <a href="# | ||
+ | |||
+ | Lo seleccionamos: | ||
+ | < | ||
+ | xpath = ' | ||
+ | o = driver.find_element_by_xpath(xpath) | ||
+ | |||
+ | print(o.get_attribute(' | ||
+ | </ | ||
+ | Hacemos click: | ||
+ | o.click() | ||
+ | ====== Lista desplegable ====== | ||
+ | Abajo a la izquierda donde pone Euro | ||
+ | {{: | ||
- | Vamos a www.renfe.com e inspeccionamos el código (F12 en firefox o botón derecho inspeccionar elemento) | + | Si pulsamos los 3 puntos |
+ | {{: | ||
- | Nos ponemos en la casilla de origen, botón derecho, Inspect Element | + | O si copiamos el código: |
- | {{:informatica: | + | <select name=" |
+ | Vaya web he elegido que sale Pesetas..... | ||
+ | | ||
+ | Para seleccionar una opción: | ||
+ | xpath = "// | ||
+ | o = driver.find_element_by_xpath(xpath) | ||
+ | o.click() | ||
+ | Podemos seleccionar por texto, pero cuidado con las webs multidioma: | ||
+ | xpath = "// | ||
+ | o = driver.find_element_by_xpath(xpath) | ||
+ | o.click() | ||
+ | ====== Grabar todo el contenido de una web ====== | ||
+ | < | ||
+ | content = driver.page_source | ||
+ | with open(' | ||
+ | f.write(content) | ||
+ | </ |
informatica/linux/selenium/ejemplos.1588318975.txt.gz · Last modified: 2020/05/01 07:42 by jose