Páginas

domingo, 9 de agosto de 2015

Python: Manipular una pagina web con Selenium


La libreria selenium tiene controles que permiten manipular una pagina web como si una persona la estuviera ex

#Descarga facturas desde el sistema

from selenium import webdriver
from selenium.webdriver.support.ui import Select


#Para crear el explorador, de Firefox en este caso
browser = webdriver.Firefox()

#navega a la pagina
browser.get('http://www.cualquierpagina.com')

#ubica los campos de usuario y contrasena por su ID
user = browser.find_element_by_id('uid')
pswd = browser.find_element_by_id('password') 
 
#escribe los valores con el metodo 'send_keys'
user.send_keys("r00715649")
pswd.send_keys('Huawei?2')

#asi se ejectutan los scripts, como los de los botones 'ingresar'
browser.execute_script('javascript:form_submit();')

#a veces un script abre una ventana pop up
#la propiedad 'window_handles' enlista las ventanas abiertas 
#cambia el focus a la segunda ventana abierta en la lista (la del pop up)
browser.switch_to.window(browser.window_handles[1])

#ubico cualquier elemento en la ventana del pop up
role = browser.find_element_by_id('user_role/user_role_xid')

#puedo borrar el contenido de un campo
#puedo pasar otro valor, ejecutar una funcion y cerrar el pop up.
role.clear()
role.send_keys('REGIONAL_VIEW_ALL')
browser.execute_script("javascript:submitUserRole('set');")
browser.close()

#vuelvo a la ventana inicial
browser.switch_to.window(browser.window_handles[0])
browser.refresh()

#puedo seleccionar elementos de una lista
#primero creo un objeto 'Select' con el elemento de lista por su nombre o ID
lista = Select(browser.find_element_by_name('P_ARRIVE_AT_PORT_DATE_operator'))
 
#luego paso el metodo 'select_by_value' y listo
lista.select_by_value('gt')
browser.execute_script("javascript:if(nextdate()){disableButtonByName('submit_report',Generating); document.management_main.submit();}")

No hay comentarios:

Publicar un comentario