Python+Selenium-19-expected_conditions模块使用

前言

当我们打开一个url后,判断打开的页面是否正确,有两种方式:

1)判断打开页面的title是否等于或包含预期值

① 需要导入模块:from selenium.webdriver.support import expected_conditions

② expected_conditions.title_contains 标题包含(多用);titile_is 标题等于

 

2)判断打开页面某些特定元素是否存在(如注册页面,注册按钮这个元素存在,即页面是返回成功的)

① 需要导入模块:

from selenium.webdriver.support import expected_conditions

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.common.by import By

② ele_exist = expected_conditions.visibility_of_element_located(locaror): 判断某个元素是否可见,通常与WebDriverWait配合使用,动态等待页面上元素出现或者消失 ,locator为定位方式和定位值,不是元素

 ③ WebDriverWait(driver, 10).until(ele_exist )  # 查找10s直到元素存在

 

需求

脚本打开csdn首页,判断页面是否正确返回

 

代码部分(第一种方式)

# coding:utf-8

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

driver = webdriver.Chrome()
driver.get("https://www.csdn.net/")
time.sleep(3)
title_true = EC.title_contains("CSDN") # 打开页面后的title包含CSDN,注意这里是区分大小写的
print(title_true)  # 打印结果:  
print(title_true(driver))  # 打印结果:True
time.sleep(3)
driver.quit()  # 等待3s关闭浏览器

 

 代码部分(第二种方式)

打开CSDN首页,“推荐”这个元素存在即说明页面返回成功

Python+Selenium-19-expected_conditions模块使用_第1张图片

 

# coding:utf-8

from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.csdn.net/")
time.sleep(3)
locator = (By.XPATH, "//*[@class='nav_com']/ul/li[1]/a")  # CSDN页面【推荐】的xpath
ele_exist = EC.visibility_of_element_located(locator)  # 判断元素是否存在
print(ele_exist)  # 打印结果:
WebDriverWait(driver, 3).until(ele_exist)
if ele_exist:
    print("【推荐】这个元素存在,页面返回正确!")
time.sleep(3)
driver.quit()  # 等待3s关闭浏览器

 

执行结果:

 

你可能感兴趣的:(Python+Selenium-19-expected_conditions模块使用)