Posicionamiento de dos objetos
2.1 Colocación de un solo elemento
En las pruebas automatizadas, el posicionamiento y el funcionamiento de los elementos del objeto es la parte central de la automatización, pero el objeto es la base de la automatización del posicionamiento, y el funcionamiento del objeto puede formarse sobre la base del objeto.
Webdriver proporciona métodos para el posicionamiento de elementos, los más comunes son los siguientes:
identificación
nombre
nombre de la clase
nombre de etiqueta
Texto del enlace
texto de enlace parcial
xpath
selector de CSS
Los métodos individuales correspondientes a pythonwebdriver son:
find_element_by_id ()
find_element_by_name ()
find_element_by_class_name ()
find_element_by_tag_name ()
find_element_by_link_text ()
find_element_by_partial_link_text ()
find_element_by_xpath ()
find_element_by_css_selector ()
El cuadro de entrada de búsqueda en la página de inicio de Baidu es un caso. Ingrese appium en el cuadro de entrada de búsqueda para explicar el posicionamiento de los elementos de python webdriver. Vea la captura de pantalla del código fuente del cuadro de entrada de búsqueda en la página de inicio de Baidu:
<input id = "kw" class = "s_ipt" autocomplete = "off" maxlength = "255" value = "" name = "wd"> |
El método de posicionamiento del selector id / name / classname / xpath / css es:
# Posicionamiento por id
driver.find_element_by_id ('kw'). send_keys ('appium')
# Localizar por nombre
driver.find_element_by_name ('wd'). send_keys ('appium')
# Localizar por nombre de clase
driver.find_element_by_class_name ('s_ipt'). send_keys ('appium')
# Localizar a través de xpath
driver.find_element_by_xpath (".//*[@ id = 'kw']"). send_keys ('appium')
# Posicionamiento mediante selector css
driver.find_element_by_css_selector ('# kw'). send_keys ('appium')
El método de enlace de texto / enlace parcial para localizar las "noticias" en la página de inicio de Baidu es:
#Localizar a través del texto del enlace
driver.find_element_by_link_text (u '新闻') .click ()
# Posicionamiento mediante texto de enlace parcial
driver.find_element_by_partial_link_text (u '闻') .click ()
2.2 Colocación de un grupo de elementos
En determinadas operaciones del navegador, a veces es necesario localizar un grupo de objetos, como arrastrar un cuadro, etc. Webdriver proporciona un método find_elements para localizar un grupo de elementos.
El método para ubicar un grupo de objetos es el mismo que el método para ubicar un solo objeto, vea a continuación:
find_elements_by_id ()
find_elements_by_name ()
find_elements_by_class_name ()
find_elements_by_tag_name ()
find_elements_by_link_text ()
find_elements_by_partial_link_text ()
find_elements_by_xpath ()
find_elements_by_css_selector ()
Las escenas que se utilizan para localizar un grupo de objetos son generalmente:
1. Operación por lotes
2. La otra es seleccionar un grupo de objetos y ubicar objetos específicos en este grupo de objetos.
2.3 Operación del navegador
Navegador maximizado |
Driver.maximize_window () |
Establecer la altura y el ancho del navegador |
Driver.set_window_size () |
Controla el avance del navegador |
Driver.forward () |
Controlar la parte posterior del navegador |
Driver.back () |
Actualización del navegador |
Driver.refersh () |
Obtén el título del navegador |
Driver.title |
Obtener la URL de la página web actual |
Driver.current_url |
Obtener el código fuente de la página actual |
Driver.page_source |
Obtener el nombre del navegador que se ejecuta |
Nombre del conductor |
El ejemplo de código anterior es el siguiente:
# codificación: utf-8
desde el controlador web de importación de selenio
desde el momento de importar el sueño
driver = webdriver.Firefox () # Si elige Python3.0, necesita agregar un controlador
# Establecer la altura y el ancho del navegador
driver.set_window_size (500,600)
# Maximizar el navegador
driver.maximize_window ()
driver.implicitly_wait (30)
# Visita Baidu
driver.get ('http://www.baidu.com')
# Actualizar
driver.refresh ()
# Visita bing
driver.get ('http://www.bing.com')
# Atrás
driver.back ()
# adelante
driver.forward ()
# Obtener el título del navegador
controlador de impresión.title
# Obtener la URL del navegador
controlador de impresión.current_url
# Obtener el código fuente de la página actual del navegador
controlador de impresión.
# Obtener el navegador que se está ejecutando actualmente
controlador de impresión.nombre
driver.quit ()
2.4 Métodos comunes de la interfaz WebElement
Devuelve el tamaño del elemento. |
Driver.size () |
Obtener el texto del elemento |
Driver.text |
Obtener valor de atributo |
Driver.get_attribute () |
Establecer si el elemento cambiado es visible |
Driver.is_displayed |
Si la casilla de verificación o la casilla de radio están marcadas |
Driver.is_selected () |
Almacene si el cuadro de edición de entrada está editado |
Driver.is_enabled () |
Operación vacía |
Driver.clear () |
Acción de clic |
Driver.click () |
Operación de entrada |
Driver.send_keys () |
****************************** El ejemplo de código anterior es el siguiente: ************ ***** ******************************************* ***** ********************
#coding: utf-8
desde seleniumimport webdriver
desde el tiempo de importación dormir
controlador = webdriver.Firefox ()
driver.maximize_window ()
driver.implicitly_wait (30)
driver.get ('http://www.baidu.com')
login = driver.find_element_by_id ('su')
# Obtener el tamaño del elemento
imprimir login.size
# Obtener propiedades
printlogin.get_attribute ('tipo')
# Si el elemento es visible
imprimir u'es visible: ', login.is_displayed ()
# Si el elemento se puede verificar
print u'puede verificarse: ', login.is_selected ()
# Si el elemento es editable
print u'is editable: ', login.is_enabled ()
driver.quit ()
2.5 ejemplo de inicio de sesión de Baidu
Ha iniciado sesión y cerrado sesión en Baidu en la página de inicio de Baidu para completar el posicionamiento de los elementos de demostración y el uso de la parte api. Consulte el siguiente código:
*********************************** Parte de código ************ * ********************************************** * ***************
# codificación: utf-8
desde seleniumimport webdriver
desde el tiempo de importación dormir
controlador = webdriver.Firefox ()
driver.maximize_window ()
driver.implicitly_wait (30)
driver.get ('http://www.baidu.com')
# Haga clic en el botón de inicio de sesión
driver.find_element_by_link_text (u '登录') .click ()
# ingresar cuenta
driver.find_element_by_id ('TANGRAM__PSP_8__userName'). send_keys ('cuenta baidu')
# introducir la contraseña
driver.find_element_by_id ('TANGRAM__PSP_8__password'). send_keys ('contraseña de cuenta')
# Cancelar el inicio de sesión automático
driver.find_element_by_id ('TANGRAM__PSP_8__memberPass'). click ()
# Haga clic en el botón de inicio de sesión
driver.find_element_by_id ('TANGRAM__PSP_8__submit'). click ()
# Obtener apodo
niCheng = driver.find_element_by_xpath (".//*[@ id = 's_username_top'] / span")
text = niCheng.text
niCheng.click ()
# Haga clic en el botón de salida
driver.find_element_by_xpath (".//*[@ id = 's_user_name_menu'] / div / a [5]"). click ()
# Haga clic en el botón Aceptar
driver.find_element_by_xpath (".//*[@ id = 'tip_con_wrap'] / div [3] / a [3]"). click ()
dormir (2)
afirmar texto en u'Madu Chongshi '
driver.quit ()