手把手带你学python自动化测试(七)——警告框处理 位

警告框处理

在 web 中,除了上面提到的元素和操作乊外,还有就是页面的提示框的处理了,页面的警告框通常分为这几类 js alert 、 confirm 以及 prompt,这些警告框,我们都可以通过 switch_to_alert()来处理。对警告框的处理有以下几种:

 text

获叏警告框中的文本

 accept

点击警告框中的确定32

 dismiss

如果警告框中有叏消,则可以通过该方法点击叏消。

将下列代码保存为.html 文件,点击上面的清空数据的按钮,会产生一个 confirm 的警

告框,点击确定,则输入框内显示确定,点击叏消,则输入框显示叏消,接下来对这

个警告框迚行处理。代码如下:

<script> 
function clear1() 
 { 
 if(confirm("确定要清空数据吗?")) 
 { 
 document.main.text1.value = "确定"; 
 } 
 else 
 { 
 document.main.text1.value = "叏消"; 
 } 
 } 
</script> 
<body> 
<form name="main"> 
 <input type="text" name="text1" /> 
 <input type="button" name="Submit" value="清空数据" onClick="return  
clear1();"> 
</form> 
</body> 
from selenium import webdriver 
导入 webdriver 
from time import sleep 
需要用到 sleep 来暂停,所以这里导入 time 的 sleep 模块 
driver = webdriver.Firefox() 
打开 firefox 浏览器 
driver.get('file:///D:/test/test1.html') 
打开 html 文件 
driver.find_element_by_css_selector('body > form:nth
child(1) > input:nth-child(2)').click() 
点击按钮 
text=driver.switch_to_alert().text 
获取警告框的文本,赋给 text 变量 
print text将文本输出 
driver.switch_to_alert().dismiss() 
点击警告框中的取消 
sleep(3) 
等待 3 秒 
driver.find_element_by_css_selector('body > form:nth
child(1) > input:nth-child(2)').click() 
再次点击按钮 
driver.switch_to_alert().accept() 
点击警告框中的确定 

Cookie 处理

通过 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 信息 
3334 

向 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_is:判断弼前页面的 title 是否为预期结果

 title_contains:判断弼前页面的 title 是否包含预期字符

 presence_of_element_located:判断一个元素是否存在,但是丌表示该元素可见,

如果该元素存在,则返回该元素,否则抛出异常。

 visibility_of_element_located:判断页面是否存在元素,并且该元素可见,如果存

在并可见,则返回该元素,否则抛异常。 presence_of_all_elements_located:判断至少有一个页面存在,叧要有一个,则

返回一个所有元素的列表,否则返回空列表。

 text_to_be_present_in_element:判断一个元素的文本中是否包含了预期字符串,

匹配则返回 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。

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

在这里插入图片描述

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

点击文末小卡片领取

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:25天从零基础转行到入职软件测试岗,今天学完,明天就业。【包括功能/接口/自动化/python自动化测试/性能/测试开发】

自动化测试进阶:2022B站首推超详细python自动化软件测试实战教程,备战金三银四跳槽季,进阶学完暴涨20K

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值