Selenium API

1,多标签之间的切换

  场景:有的时候点击一个连接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况

  (1)获取所有窗口的句柄

      handles =driver.window_handlers()

      调用该方法会得到一个列表,在selenium运行过程的每一个窗口都有一个对应的值存放在里面

  (2)通过窗口的句柄进入的窗口

      driver.switch_to_window(handles[n])

      driver.switch_to.window(handles[n])

  案例:58同城租房信息

    

 2,多表单切换

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

  (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)

  案例:QQ邮箱登录

    

3,弹框操作

  (1)进入到弹框中

    driver.switch_to.alert

   (2) 接收警告

    accept()

   (3)解除警告

    dismiss()

   (4)发送文本到警告框

    send_keys(data)

4.鼠标和键盘操作

手动测试时键盘的操作在 selenium 页有实现,关于鼠标的操作由 ActionChains () 类来提供,关于键盘的操作由 Key() 类来提供
1、鼠标操作
   入动作链类,动作链可以储存鼠标的 动作
  from selenium.webdriver import ActionChains 
   获取元素                                                                                                                    el = driver.find_element_by_xxx (value)
   context_click (el)       el 执行右击
   执行 ActionChains 中储存的所有动作
   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

5.Selenium 显式等待与隐式等待

在selenium中常用的等待分为显示等待隐式等待强制等待三种,

强制等待,设置固定休眠时间。 python 的 time 包提供了休眠方法 sleep() , 导入 time 包后就可以使用 sleep(),进行脚本的执行过程进行休眠。

隐式等待,也叫智能等待,是 webdirver 提供的一个超时等待。隐的等待一个元素被发现,或一个命令完成。如果超出了设置时间的则抛出异常。

显式等待,同样也是 webdirver 提供的方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amd.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值