zoukankan      html  css  js  c++  java
  • UI自动化之特殊处理一(iframe句柄鼠标键盘)

    iframe句柄鼠标键盘是一些比较特殊的事件,需要特殊处理

    目录

    1、iframe

    2、句柄(handle)

    3、鼠标键盘

    1、iframe

    iframe 是内嵌的网页元素,也可以说是内嵌的框架,我们需要先切换到iframe上面,才能对元素进行操作,若需要再操作不在iframe上的元素需要切换topwindow

    001、判断是否有iframe

    至于在不在iframe上面,通过firepath看一下是不是topwindow,如果不是就是在iframe上面

    iframe一般有2种,一种是有id,一种没有id

    002、有id的通过id来定位

    driver.switch_to_frame(“id属性值”)
    

      

    003、无id的通过tag name定位,然后切换

    m=driver.find_element_by_tag_name(“iframe”)
    driver.switch_to_frame(m)

    特别的,有多个无id的iframe,可通过索引来定位

    m=driver.find_element_by_tag_name("iframe")[0]
    switch_to.iframe(m)

    004、操作完iframe上的元素后,需要操作不在iframe上的元素,需要切回topwindow,再操作

    driver.switch_to_default_content()
    

     特别的,有多个iframe,需要一层一层的定位进去;需要切换回上一个iframe,可以用

    driver.switch_to.parent_frame() 

    注:switch_to_frame()上面会有横线,可以写成driver.switch_to.frame(),就没问题了

    2、句柄(handle)

    再调试的时候,如果点开的是一个链接,则可以手动拖动下,看他是否会重新打开一个窗口,如果会,则他就是另一个句柄了。浏览器窗口的属性,用句柄来识别

    001、打印当前句柄

    m=driver.current_window_handle
    print m
    

    002、获取所有句柄

    m=driver.window_handles
    print m
    '''获取第二个句柄’‘’
    print m[1]
    

    003、如果不等于当前句柄就切换

    h = driver.current_window_handle
    all_h = driver.window_handles
    for i in all_h: if i!=h; driver.switch_to.window(i)

     

    driver.switch_to.window(h) #切换回首页

    3、鼠标键盘

    001、键盘事件

    一般在浏览器中会有一个输入完就回车的动作submit()

    driver.find_element_by_name("password").sendkeys()
    driver.find_element_by_name("password").submit()
    

    如果submit()提交不了的话,可以导入键盘事件模块

    导入:

    from selenium.webdriver.common.keys import Keys
    

    键盘操作有单个输入和组合输入

    单个输入

    如enter:send_keys(keys,ENTER)

    制表键 Tab: send_keys(Keys.TAB) 

    空格键:send_keys(Keys.SPACE) 

    组合输入

    如复刢 Ctrl+C:send_keys(Keys.CONTROL,'c') ,其他组合键类似

    可以将剪切、复制、粘贴组合使用。

    002、鼠标事件

    导入:

    from selenium.webdriver.common.action_chains import ActionChains
    

     鼠标事件后,都需要有一个执行的动作perform(),最常见的鼠标动作就是悬停move_to_element()

    a、悬停事件

    mouse = driver.find_element_by_link_text("设置")
    ActionChains(driver).move_to_element(mouse).perform()
    

    b、拖动事件

    从源路径将鼠标滑动拖到目标路径

    source = driver.find_element_by_id("xxx")
    target = driver.find_element_by_id("xxx")
    ActionChains(driver).drag_and_drop(source, target).perform()
    

      

      

  • 相关阅读:
    wifi通信过程的研究--(2)Wifi传输认证过程
    wifi通信过程的研究--(1)Wifi基本属性介绍
    wifi通信过程的研究--(3)传输过程概念细分
    网络编程之TCP/IP各层详解
    持续集成CI与自动化构建
    IEEE 802.11标准列表
    IEEE802.11协议基础知识
    IEEE 802.11协议基础知识整理
    beacon帧字段结构最全总结(三)——VHT字段总结
    beacon帧字段结构最全总结(二)——HT字段总结
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/9642548.html
Copyright © 2011-2022 走看看