首页 > Web开发 > 详细

web自动化02-鼠标操作-键盘操作-元素等待-下拉选择框-弹出框

时间:2019-07-10 17:31:00      阅读:131      评论:0      收藏:0      [点我收藏+]

  

鼠标操作
  • 导包

    from selenium.webdriver import ActionChains
  • 实例化鼠标对象

    action = ActionChains(driver)
  • 调用鼠标方法

    #鼠标右击
    action.context_click()
    #鼠标双击
    action.double_click()
    #鼠标拖拽,例如登录时经常用到将元素拖到到指定位置进行验证,soure:表示被拖动元素对象
    #,target表示目标元素
    action.drag_and_drop(soure,target)
    #悬浮操作,element表示悬浮的元素对象
    action.move_to_element(element)
    • 注意点:调用鼠标方法,还不会执行鼠标操作,只是将需要进行的操作指令存储到action鼠标对象内

  • 执行鼠标操作


    #执行鼠标操作
    #执行perform()方法后才会执行鼠标操作
    #注意:在执行鼠标操作脚本时不能手工移动鼠标
    action.perform()
键盘操作
  • 导包

    from selenium.webdriver.common.keys import Keys
  • 执行键盘操作方法

#Keys类封装了除了26个字母和数字键以外的所有键符
#调用send_keys方法,直接调用Keys里面指定键符做为参数来执行键盘操作
#1.单个按键操作
element.send_keys(Keys.BACK_SPACE) #删除键
element.send_keys(Keys.SPACE) #空格键
#2.组合按键操作
element.send_keys(Keys.CTRL,a) #选中
element.send_keys(Keys.CTRL,c) #复制

 

元素等待

隐示等待

#方法,timeout表示的最大超时时长,单位秒
driver.implicitly_wait(timeout)
"""
特点:
1.全局只需要设置一次
2.作用于所有元素定位
3.未找到元素抛出异常:NoSuchElementException
"""

显示等待

#导包
from selenium.webdriver.support.wait import WebdriverWait
#使用方法
#1.timeout:表示超时时间
#2.poll_frequency:表示间隔时间,默认为0.5s
#3.util:直到...时,下面表示直到找到id为userA的元素时
WebDriverWait(driver,timeout,poll_frequency).util(lambda x:x.find_element_by_id(userA))
"""
特点:
1.针对单个元素生效
2.封装在WedDriverWait类中,需要导包
3.未找到元素抛出异常:TimeOutException
"""

 

下拉选择框

 

  导包

  实例化下拉框对象

  执行下拉框选中的操作

from selenium.webdriver.support.select import Select
#element为html内所要操作的<select>下拉框标签元素
select = Select(element)

#通过索引选择对应选项
#注意:index从0开始计数
select.select_by_index(index)
#通过选项元素的value值选择对应选项
select.select_by_value(value)
#通过选项元素的文本信息选择对应选项
select.select_by_visiable_text(text)

 

弹出框
    • 常用弹出框

    <!--alert 警告框:包含确定按钮和提示信息 -->
    <input type=“button” onclick=“alert(‘我是警告框’)” value="alert"/>
    <!--confirm 确认框:包含确认按钮和取消按钮和提示信息-->
    <input type=“button” onclick=“confirm(‘我是确认框’)” value="confirm"/>
    <!--prompt 提示框:包含确认按钮和取消按钮、提示信息以及信息输入框-->
    <input type=“button” onclick=“prompt(‘我是提示框’)” value="prompt"/>
    • 弹出框处理方法

    #获取弹出框对象
    alert = driver.switch_to.alert
    #调用弹出框对象方法
    #返回弹出框信息
    alert.text
    #接受对话框
    alert.accept()
    #取消度画框
    alert.dissmiss()
    ?
    """
    注意:
    1.上面的处理方法对:alert/confirm/prompt三种弹出框通用
    2.alert没有取消按钮,但alert.dissmiss()对其同样生效
    """
  • 滚动条操作

    #1.使用js的方法控制滚动条
    js = "window.scrollTo(0,1000)"
    #2.selenium执行JavaScript脚本
    driver.execute_script(js)
    ?
    """
    注意:
    1.selenium本身没有提供直接操作滚动条的方法,但是js可以控制滚动条操作
    2.selenium提供了执行js的方法
    """
frame切换
  • frame:Html页面中的一种框架,主要作用是在当前页面中指定区域显示另外一个页面

  • frame切换处理方法


    #切换frame,frame_reference表示可定位对应frame框架标签的属性:id、name等
    driver.switch_to.frame(frame_reference)
    #回到默认页面
    driver.switch_to.default_content()
    """
    在frame中操作其他页面,必须先返回到默认页面才能进行其他操作
    """

     

多窗口切换
  • 句柄:handle,页面窗口唯一识别码

  • 切换窗口方法


    #获取页面当前句柄
    driver.current_window_handle
    #获取所有页面句柄
    driver.window_handles
    """
    注意:获取所有句柄信息返回的一组句柄信息,排序根据页面窗口打开的顺序排序,获取指定的页面句柄添加
    对应的索引即可
    """
    #跳转指定页面
    driver.switch_to.window(handle)

 

窗口截图
  • 窗口截图


    #直接调用selenium中的方法即可,imgpath为存放路径
    driver.get_screenshot_as_path(imgpath)
    #处理图片重复方法,只需要参数化文件名称即可
    imgpath = time.strf(‘%Y%m%D%-%H%M%S%‘){}.test.png
    ?
    """
    注意:
    1.图片存放路径必须先创建好,get_screenshot_as_path()方法不自动化创建路径
    2.图片格式必须为png
    """
cookie处理
  • 处理验证码的几种方式

    • 去掉验证码

    • 设置万能验证码

    • 验证码识别技术

    • 记录cookie

  • cookie概念

    • 是由web服务器生成的,并且保存在用户浏览器上的小文本文件,包含了用户的相关的信息

    • 数据格式:键值对组成,对应python的字典

  • cookie处理方法


    #获取cookie的方法,name为cookie的名称
    driver.get_cookie(name)
    #获取网站上所有cookie信息
    driver.get_cookies()
    #添加cookie
    driver.add_cookie(cookie_dict)
    ?
    """
    注意:
    1.cookie_dict必须为字典格式
    2.必须包含“name”和“value”键
    """

     

 

web自动化02-鼠标操作-键盘操作-元素等待-下拉选择框-弹出框

原文:https://www.cnblogs.com/snailon/p/11165115.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!