Pruebas avanzadas de automatización web: la aplicación y el principio de las condiciones_esperadas en las páginas web

prefacio

Expected_conditions es un módulo de selenium, que puede juzgar los elementos de la página web y generalmente se usa con WebDriverWait.

Introducción detallada

1. title_is, para determinar si el título de la página actual es igual al valor esperado y devolver un valor booleano

También puede usar driver.title para imprimir el título de la página actual

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

# 判断当前页面的标题是否符合预期
# title = WebDriverWait(driver, 5).until(EC.title_is('百度一下,你就知道'))
# 返回的类型是True或False
# print(title)
if EC.title_is('百度一下,你就知道'):
    print(True)
print(driver.title)
driver.quit()

2. title_contains(), para determinar si el título de la página actual contiene la cadena esperada

El uso es similar a title_is(), y la introducción no se repetirá.

3. present_of_element_located() determina si un elemento se agrega al árbol DOM, pero no significa que el elemento deba estar visible

Nota: El parámetro pasado es un tipo de tupla, el primer elemento es el método de posicionamiento y el segundo elemento es el valor. Devuelve la posición del elemento si el elemento existe, lanza una excepción (NoSuchElementException) si no existe

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

r = EC.presence_of_element_located(('id', 'kw'))
print(r(driver))

4. visibilidad_of_element_located() determina si el elemento es visible (visible significa que el elemento no está oculto, y el ancho y el alto del elemento no son iguales a 0)

En comparación con el tipo de presencia_de_elemento_ubicado(), la diferencia es que presencia_de_elemento_ubicado() solo enfatiza que el elemento existe en el árbol DOM, y no importa si es visible o no.
Devuelve el elemento en sí mismo si el elemento existe y es visible, falso si existe pero no es visible

5. visibilidad_of() determina si el elemento es visible

La función es la misma que la visibilidad_de_elemento_ubicado(), la diferencia es que los parámetros son diferentes, y el parámetro recibido por visibilidad_de() es el elemento posicionado

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

element = driver.find_element_by_id('kw')
locate = WebDriverWait(driver, 5).until(EC.visibility_of(element))
locate.send_keys('selenium')
driver.quit()

6, presencia_de_todos_los_elementos_ubicados()

Determinar si existe al menos un elemento en el árbol DOM

7, texto_para_estar_presente_en_elemento()

Determinar si el texto en un elemento contiene la cadena esperada

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

r = WebDriverWait(driver, 5).until(EC.text_to_be_present_in_element(('xpath', '//*[@id="bottom_layer"]/div[1]/p[5]/a'), '使用百度前必读'))
print(r)

8, texto_a_estar_presente_en_valor_elemento()

Determinar si el atributo de valor en un elemento contiene la cadena esperada

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

# 判断某个元素的value属性值是否符合预期字符串
r = WebDriverWait(driver, 5).until(EC.text_to_be_present_in_element_value(('id', 'su'), '百度一下'))
print(r)

9, marco_para_estar_disponible_y_cambio_a_él()

Determine si el formulario se puede cambiar. En caso afirmativo, devuelva Verdadero y cambie, de lo contrario, devuelva Falso.
Por ejemplo, inicie sesión en el buzón de QQ:

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

def find_element(located):
    if isinstance(located, tuple):
        return WebDriverWait(driver, 5).until(EC.presence_of_element_located(located))
    else:
        return '必须是元组类型'

driver = webdriver.Chrome()
driver.set_window_size(600, 800)

driver.get('https://mail.qq.com/')
# 判断iframe是否可以切换进去,返回布尔值
is_switch = WebDriverWait(driver, 5).until(EC.frame_to_be_available_and_switch_to_it(('id', 'login_frame')))
print(is_switch)

# 点击【帐号密码登录】
WebDriverWait(driver, 5).until(EC.presence_of_element_located(('id', 'switcher_plogin'))).click()

# 定位元素:账号输入框、密码输入框、登录按钮
user_element = find_element(('id', 'u'))
password_element = find_element(('id', 'p'))
login_element = find_element(('id', 'login_button'))

# 输入账号、密码、点击登录
user_element.send_keys('[email protected]')
password_element.send_keys('password')
login_element.click()

driver.quit()

10, invisibilidad_de_elemento_ubicado()

Determinar si un elemento no existe en el árbol DOM o no está visible

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

a = EC.invisibility_of_element_located(('id', 'kw')) # 存在则返回False
print(a(driver))

11, elemento_para_hacer_clic()

Determinar si el elemento es visible y se puede hacer clic
Si el elemento existe y se puede hacer clic, devolver el elemento, si el elemento existe pero no se puede hacer clic, devolver Falso

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.set_window_size(480, 600)
driver.get('https://www.baidu.com')

# 百度页该元素不可点击,返回False
a = EC.element_to_be_clickable(('xpath', '//*[@id="s-bottom-layer-right"]/span[2]'))
print(a(driver))

12, obsolescencia_de()

Espere hasta que se elimine un elemento del árbol DOM y pase el elemento elemento para determinar si la página se ha actualizado

13, elemento_a_ser_seleccionado()

Determinar si un elemento está seleccionado, generalmente utilizado en la lista desplegable, pasar el elemento elemento

14, selección_elemento_estado_a_ser()

Determinar si el estado seleccionado de un elemento cumple con las expectativas, los parámetros del método son element y is_selected

15, elemento_ubicado_selección_estado_a_ser()

Tiene la misma función que element_selection_state_to_be(), pero los parámetros del método son diferentes y los parámetros del método se encuentran y se seleccionan.

16, alerta_es_presente()

Presione si hay una advertencia de alerta en la página

Finalmente: para retribuir a los fanáticos acérrimos, he compilado un video tutorial de aprendizaje de prueba de software completo para usted. Si lo necesita, puede obtenerlo gratis【保证100%免费】

Documentación de la entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista son los materiales de entrevista más recientes de empresas de Internet de primer nivel como Ali, Tencent y Byte, y algunos jefes de Byte han dado respuestas autorizadas. Termine este conjunto Los materiales de la entrevista creen que todo el mundo puede encontrar un trabajo satisfactorio.

Supongo que te gusta

Origin blog.csdn.net/IT_LanTian/article/details/131537807
Recomendado
Clasificación