通过 webdriver 可以对浏览器中的 cookie 进行处理,常见处理方式有获取 cookie、添加 cookie、删除指定 cookie、删除所有 cookie。
获取 cookie 信息
from selenium import webdriver from time import sleep drvier=webdriver.Firefox() drvier.get('http://www.chuangyijia.com/login') 打开前台登陆页面 drvier.implicitly_wait(3) drvier.find_element_by_id('email').send_keys('8101550 67@qq.com') 输入用户名 drvier.find_element_by_id('pwd').send_keys('a654321') 输入密码 drvier.find_element_by_css_selector('#submit').click() 点击登陆 cookie = drvier.get_cookies() 获取登陆后的 cookie 信息 print cookie 打印获取到的 cookie 信息
向 cookie 中添加信息
from selenium import webdriver from time import sleep drvier=webdriver.Firefox() drvier.get('http://www.chuangyijia.com/login') 打开前台登陆页面 cookie = drvier.add_cookie({‘name’:’key test’,’value’:’key-test’}) 添加 cookie 信息
添加 cookie,可以使用 add_cookie 方式添加。
删除 cookie 中的信息
drvier.delete_cookie('ci_session') 删除 cookie drvier.delete_all_cookies() 删除所有 cookie
expected_conditions
在自劢化测试过程中,通常需要对测试结果做出判断,在此可以通过 expected_conditions 来实现预期结果的判定,以此来断言执行状况。 expected_conditions 提供了徆多方法,常用的方法如下:
title_contains:判断弼前页面的 title 是否包含预期字符
匹配则返回 True,否则返回 False。
from selenium import webdriver 导入 webdriver from selenium.webdriver.support import expected_conditions 导入 expected_conditions 模块 from selenium.webdriver.common.by import By 在 expected_conditions 中需要使用定位,by 提供统一使用 find_element()方法,简化了定位操作 from time import sleep 导入 sleep 模块 drvier=webdriver.Firefox() 打开浏览器 drvier.get('http://www.chuangyijia.com/login') 打开登陆页面 drvier.implicitly_wait(3) 等待 3 秒 drvier.find_element_by_id('email').send_keys('810155067@qq .com') 输入用户名 drvier.find_element_by_id('pwd').send_keys('a654321') 输入密码 drvier.find_element_by_css_selector('#submit').click() 登陆 sleep(2) 此时等待 2 秒,主要是为了获取 title,太快的话,获取的 title 是登陆成功之前的 title 35is_title=expected_conditions.title_is(u'首页-创意家') 判断页面的 title 是否为预期的字符串 is_title(drvier) 如果与预期字符串相等,这里返回结果为 True,否则为 False。 Title_is 是一个 Class,该 class 中实现了__call__方法,那么这 个类对象就能像函数一样调用了。 is_in_title=expected_conditions.title_contains(u'创意家') 判断 title 中是否包含预期字符串 is_in_title(drvier) 可以用 print 打印他的返回结果为 True 还 False is_exist=expected_conditions.presence_of_element_located(( By.CSS_SELECTOR,'.sq_menu > a:nth-child(3)')) 判断元素是否存在页面上,不一定会显示在页面上 print is_exist(drvier) 如果存在,这里返回元素信息,否则这里会出现 NoSuchElementException 的异常。 in_ele=expected_conditions.presence_of_all_elements_locate d((By.TAG_NAME,'li')) 页面是否至少存在一个指定元素 print in_ele(drvier) 如果存在,这里返回一个列表,否则返回列表为空 visibility_exist=expected_conditions.visibility_of_element _located((By.TAG_NAME,'li')) 检查元素是否可见 print visibility_exist(drvier) 如果元素存在并可见,则返回元素信息,元素不可见,则返回异常, NoSuchElementException 的异常,如果元素存在,但是不可见, 则返回 False。 3637 is_text_in_ele=expected_conditions.text_to_be_present_in_e lement((By.CSS_SELECTOR,'.menu > ul:nth-child(1) > li:nth child(1) > a:nth-child(1)'),u'意') 检查元素中是否包含字符串 print is_text_in_ele(drvier) 如果检查中包含字符串,则返回 True,否则返回 False。