informatica:linux:selenium
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatica:linux:selenium [2019/09/24 07:20] – [Python firefox headless local] javi | informatica:linux:selenium [2022/12/27 09:08] (current) – jose | ||
---|---|---|---|
Line 316: | Line 316: | ||
o.click() | o.click() | ||
</ | </ | ||
+ | |||
+ | |||
+ | ====== Padres e hijos ====== | ||
+ | |||
+ | Tenemos el siguiente código: | ||
+ | < | ||
+ | <div class=" | ||
+ | <div style=" | ||
+ | <div style=" | ||
+ | < | ||
+ | <div class=" | ||
+ | <div tabindex=" | ||
+ | <div class=" | ||
+ | <input name=" | ||
+ | <label class=" | ||
+ | </ | ||
+ | </ | ||
+ | <div tabindex=" | ||
+ | <div class=" | ||
+ | <input name=" | ||
+ | <label class=" | ||
+ | </ | ||
+ | </ | ||
+ | <div tabindex=" | ||
+ | <div class=" | ||
+ | <input name=" | ||
+ | <label class=" | ||
+ | </ | ||
+ | </ | ||
+ | <div tabindex=" | ||
+ | <div class=" | ||
+ | <input name=" | ||
+ | <label class=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | {{: | ||
+ | |||
+ | Queremos hacer click en el checkbox, que es un campo input (la caja verde), pero es dinámico y no tiene el identificador. El indentificador está dentro del div que tiene el texto en title que es la caja padre en rojo | ||
+ | {{: | ||
+ | |||
+ | Primero seleccionamos el bloque padre, buscando por div y title que queramos: | ||
+ | < | ||
+ | menu_click=' | ||
+ | menu_click=' | ||
+ | menu_click=' | ||
+ | |||
+ | xpath='// | ||
+ | padre = driver.find_element_by_xpath(xpath) | ||
+ | </ | ||
+ | Ahora dentro de esa caja, selecctionamos el input para hacer click | ||
+ | < | ||
+ | xpath2=' | ||
+ | hijo = padre.find_element_by_xpath(xpath2) | ||
+ | hijo.click() | ||
+ | </ | ||
+ | |||
+ | Si a partir de un elemento queremos seleccionar el padre:\\ | ||
+ | Seleccionamos el elemento: | ||
+ | xpath='// | ||
+ | obj = driver.find_element_by_xpath(xpath) | ||
+ | Y a partir de ese elemento el padre: | ||
+ | padre=obj.find_element_by_xpath(" | ||
+ | |||
+ | |||
+ | ====== Grabar el contenido de la web en un archivo ====== | ||
+ | |||
+ | ===== Texto ===== | ||
+ | |||
+ | |||
+ | https:// | ||
+ | |||
+ | En mi caso fue muy útil porque no fui capaz, ni con chrome ni con firefox, de obtener el xpath de un popup que al hacer click en cualquier parte se cerraba. | ||
+ | |||
+ | < | ||
+ | html = driver.execute_script(" | ||
+ | with open(" | ||
+ | f.write(html) | ||
+ | </ | ||
+ | |||
+ | ===== Captura de pantalla ===== | ||
+ | |||
+ | < | ||
+ | fichero = f" | ||
+ | driver.set_window_size(1080, | ||
+ | driver.save_screenshot(" | ||
+ | driver.save_screenshot(" | ||
+ | </ | ||
+ |
informatica/linux/selenium.1569309615.txt.gz · Last modified: 2019/09/24 07:20 by javi