- Eventos en Editores de Texto
from selenium import webdriver
import time as tiempo
(1) '''Editor de código online UEditor (localizando el área de texto)'''
navegador = webdriver.Chrome()
navegador.maximize_window()
navegador.get('https://www.bejson.com/ui/ueditor/')
navegador.switch_to.frame('ueditor_0')
tiempo.sleep(2)
navegador.find_element_by_xpath('/html/body/p').send_keys('hola')
tiempo.sleep(2)
navegador.quit()
(2) '''Editor de código online UEditor (localizando mediante JavaScript)'''
def editorRico(navegador, idFrame, contenido):
'''
:param navegador: instancia de WebDriver
:param idFrame: ID del iframe
:param contenido: texto a insertar
:return:
'''
js="document.getElementById('{0}').contentWindow.document.body.innerHTML='{1}'".format(idFrame,contenido)
navegador.execute_script(js)
navegador = webdriver.Chrome()
navegador.maximize_window()
navegador.get('https://www.bejson.com/ui/ueditor/')
#Método con JavaScript
editorRico(navegador=navegador, idFrame='ueditor_0', contenido='ejemplo')
tiempo.sleep(2)
navegador.quit()
- Eventos del Ratón:
ActionChains es un método de interacción automatizada que permite simular acciones como moivmientos del ratón, operaciones de botones, plusaciones de teclas e interaccioens con menús contextuales.
Cuando se llaman a métodos de operación en un objeto ActionChains, las operaciones se almacenan en una cola. Al llamar a perform(), los eventos se disparan en el orden en que fueron encolados.
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
import time as tiempo
(1) '''Eventos del ratón (para menús desplegables)'''
navegador = webdriver.Chrome()
navegador.maximize_window()
navegador.get('https://www.baidu.com/')
#Hacer clic en configuración
#navegador.find_element_by_xpath('//*[@id="s-usersetting-top"]').click()
configuracion = navegador.find_element(By.XPATH,'//*[@id="s-usersetting-top"]')
#Crear instancia de ActionChains con el navegador
acciones = ActionChains(navegador=navegador)
#move_to_element() mueve el ratón a un elemento específico
acciones.move_to_element(configuracion).perform()
tiempo.sleep(5)
#Hacer clic en configuración de búsqueda
navegador.find_element(By.LINK_TEXT,'Configuración de búsqueda').click()
tiempo.sleep(3)
#Verificar si está seleccionada la opción de 10 resultados por página
pagina = navegador.find_element(By.NAME,'NR')
# is_selected() verifica si el elemento está seleccionado
# print(pagina.is_selected())
assert pagina.is_selected() == True
navegador.quit()
(2) '''Operaciones con botón derecho'''
navegador = webdriver.Chrome()
navegador.get('https://www.baidu.com/')
buscador = navegador.find_element_by_id('kw')
acciones = ActionChains(navegador)
acciones.context_click(buscador).perform() #Clic con botón derecho
tiempo.sleep(5)
navegador.quit()
'''Operaciones con botón derecho (Baidu Cloud)'''
navegador = webdriver.Chrome()
navegador.maximize_window()
navegador.get('https://pan.baidu.com/')
tiempo.sleep(3)
#Ingresar usuario
navegador.find_element_by_name('userName').send_keys('ejemplo@correo.com')
tiempo.sleep(3)
#Ingresar contraseña
navegador.find_element_by_id('TANGRAM__PSP_4__password').send_keys('contraseña123')
tiempo.sleep(3)
#Hacer clic en iniciar sesión
navegador.find_element_by_xpath('//*[@id="TANGRAM__PSP_4__submit"]').click()
tiempo.sleep(3)
#Cerrar ventana emergente
navegador.find_element_by_xpath('/html/body/div[3]/div[1]').click()
tiempo.sleep(5)
#Seleccionar Mis Recursos
misRecursos = navegador.find_element_by_xpath('//*[@id="layoutMain"]/div[2]/div[3]/div/div/dd[4]/div[2]/div[1]/a')
acciones = ActionChains(navegador)
#Ejecutar clic derecho en la carpeta
# acciones.context_click(misRecursos).perform()
acciones.double_click(misRecursos).perform()
tiempo.sleep(3)
navegador.quit()
- Eventos del Teclado
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time as tiempo
(1) '''Operaciones con teclas (Copiar, Pegar, Borrar, Enter)'''
navegador = webdriver.Chrome()
navegador.get('https://www.baidu.com/')
#Buscador
buscador = navegador.find_element(By.ID,'kw')
#Escribir búsqueda
buscador.send_keys('python')
#Ctrl+a para seleccionar todo
buscador.send_keys(Keys.CONTROL,'a')
tiempo.sleep(3)
buscador.send_keys('programación')
#Ctrl+c para copiar
buscador.send_keys(Keys.CONTROL,'c')
tiempo.sleep(3)
#Borrar
#buscador.send_keys(Keys.BACKSPACE)
tiempo.sleep(6)
##Ctrl+v para pegar
buscador.send_keys(Keys.CONTROL,'v')
tiempo.sleep(3)
#Tecla Enter
buscador.send_keys(Keys.ENTER)
tiempo.sleep(3)
navegador.quit()
(2)'''Navegación vertical en el navegador'''
navegador = webdriver.Chrome()
navegador.maximize_window()
navegador.get('https://www.baidu.com/')
#Escribir en el buscador
navegador.find_element(By.ID,'kw').send_keys('Selenium WebDriver')
#Hacer clic en el botón de búsqueda
navegador.find_element(By.ID,'su').click()
tiempo.sleep(3)
#Desplazar hacia abajo en los resultados
#Mover scroll al final
#Para manipular scroll en elementos incrustados, primero hay que localizarlos
# js
abajo = 'document.documentElement.scrollTop=10000' #document.documentElement accede a scrollTop
#Ejecutar script JavaScript
navegador.execute_script(abajo)
tiempo.sleep(5)
##Desplazar hacia arriba
arriba = 'document.documentElement.scrollTop=0'
#Ejecutar script hacia arriba
navegador.execute_script(arriba)
tiempo.sleep(5)
navegador.quit()