• Selenium-Swtich和SelectApi接口


    Switch

    我们在UI自动化测试时,总会出现新建一个tab页面、弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了。需要用到Selenium单独提供的模块switch_to模块

    引用路径

    # 第一种方式可以通过直接导入SwitchTo模块来进行操作
    from selenium.webdriver.remote.switch_to import SwitchTo
     
    # 第二种方式是直接通过Webdriver的switch_to来操作
    driver.switch_to

    其实webdriver在以前的版本中已经为我们封装好了切换Windows、Alert、Iframe,现在依然可以使用,但是会被打上横线,代表他已经过时了,建议使用SwitchTo类来进行操作。

    SwitchToWindows

    handles = driver.window_handles
     
    # SwitchToWindows接受浏览器TAB的句柄
    driver.switch_to.window(handles[1])

    SwitchToFrame

    # SwitchToFrame支持id、name、frame的element
     
    # 接受定位到的iframe的Element,这样就可以通过任意一种定位方式进行定位了
    frameElement = driver.find_element_by_name('top-frame')
    driver.switch_to.frame(frameElement)
     
    # 通过fame的name、id属性定位
    driver.switch_to.frame('top-frame')
     
    # 当存在多层iframe嵌套时,需要一层一层的切换查找,否则将无法找到
    driver.switch_to.frame('top-frame')
    driver.switch_to.frame('baidu-frame')
     
    # 跳转到最外层的页面,默认的页面
    driver.switch_to.default_content()
     
    # 多层Iframe时,跳转到上一层的iframe中
    driver.switch_to.parent_frame()

    SwitchToAlert

    # alert 实际上也是Selenium的一个模块
    from selenium.webdriver.common.alert import Alert
     
    # 也可以通过Webdriver的switch_to来调用
     
    # 点击确认按钮
    driver.switch_to.alert.accept()
     
    # 如果是确认弹框,相当于点击需要和X按钮
    driver.switch_to.alert.dismiss()
     
     
    # 如果alert上有文本框时,可以输入文字。(注: 没遇到过)
    driver.switch_to.alert.send_keys()
     
    # 返回Alert上面的文本内容
    text = driver.switch_to.alert.text

    Select(下拉选择框)

    在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块)。

    引用路径

    from selenium.webdriver.support.select import Select

    Select操作

     

  • 相关阅读:
    软件测试总结
    接口测试总结与分享
    Android自动化测试框架
    Jmeter系列- Jmeter 分布式测试
    python+requests接口自动化测试实战
    测试十年的前辈工作心得与经验分享
    一次压测实战的复盘
    (纯技术干货)完整的框架搭建过程 实战 Python+unittest+requests 接口自动化测试
    Android自动化测试框架必用工具
    第八周作业
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13220706.html
Copyright © 2020-2023  润新知