day02-Web自动化测试进阶(二)

多表单切换

在网页中,表单嵌套是很常见的情况,尤其是在登录的场景

1)什么是多表单?

实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面

2)处理方法                  

直接使用id值切换进表单             driver.switch_to.frame(value)/driver.switch_to_frame(value)         定位到表单元素,再切换进入             el = driver.find_element_by_xxx(value)             driver.switch_to.frame(el)    /driver.switch_to_frame(el)

弹出框操作          

1) 进入到弹出框中         driver.switch_to.alert     

2) 接收警告         accept()     

3) 解散警告         dismiss() 

样式:发送文本到警告框         send_keys(data)

鼠标和键盘操作

手动测试时键盘的操作在selenium页有实现,关于鼠标的操作由ActionChains()类来提供,关于键盘的操作由Key()类来提供

1)鼠标操作

导入动作链类,动作链可以储存鼠标的动作         

from selenium.webdriver import ActionChains                 

获取元素                                                                                                                                el = driver.find_element_by_xxx(value)         

context_click(el)       对el执行右击         

执行ActionChains中储存的所有动作                        perform()

例如:ActionChains(driver).context_click(ele).perform()     点击鼠标右键                  ActionChains(driver). double_click(ele).perform()            点击鼠标左键            ActionChains(driver).move_to_element(el).perform() 鼠标悬停

2)键盘操作

键盘操作使用的是Keys类,一般配合send_keys使用

* 导入         from selenium.webdriver.common.keys import Keys

* 常用键盘操作

send_keys(Keys.BACK_SPACE)     删除键(BackSpace)                         send_keys(Keys.SPACE)         空格键(Space)                          

send_keys(Keys.TAB)             制表键(Tab)                          

send_keys(Keys.ESCAPE)         回退键(Esc)                        

send_keys(Keys.ENTER)         回车键(Enter)                        

send_keys(Keys.CONTROL,‘a’)     全选(Ctrl+A)                          send_keys(Keys.CONTROL,‘x’)     剪切(Ctrl+X)                          send_keys(Keys.CONTROL,‘v’)     粘贴(Ctrl+V)                          

send_keys(Keys.F1)             键盘 F1           

 ……             

send_keys(Keys.F12)             键盘 F12

 

浏览器等待

1) 为什么要进行等待?                  

1.网速慢       

 2.网站内容过多       

 3.如果不进行等待而直接定位元素,可能会抛出异常     

2) selenium中等待的分类:                              

强制等待:前提是要导入所需要的包

                  

 

 

显示等待可以和隐式等待一起:

 

driver.implicitly_wait(30) #等待30s                  

显示等待:显示等待明确的要等到某个元素的出现

隐式等待的作用域是全局,所以一般设置在整局代码的头几行。

代码的优化:

 

 

      生成测试报告:

 

练习:

1:使用游览器登录http://www.baidu.com

        2:搜索淘宝官网

        3:登录用户名和密码

        4:搜索商品(手机,电脑,,,,),给定约束条件(价格,包邮,发货地址。。。)

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值