zoukankan      html  css  js  c++  java
  • Selenium

    一、多表单切换  driver.switch_to.frame()

    iframe  :直接将一个html 页面嵌入另一个html 页面中

    switch_to.frame() 默认可以直接取表单的id 或 name 属性 

    #切换iframe,一定要一层一层找,层级一旦错误就定位失败
    # driver.switch_to.frame('top-frame')
    # driver.find_element_by_css_selector('#newtag').send_keys(111)
    # iframe = driver.find_element_by_css_selector('iframe[src="/new-index/"]')
    # driver.switch_to.frame(iframe)
    # driver.find_element_by_css_selector('#newtag').send_keys(111)

    # driver.switch_to.frame('baidu-frame')
    # driver.find_element_by_css_selector('#kw').send_keys(111)
    # driver.switch_to.default_content()#返回到最外层的iframe
    # driver.switch_to.parent_frame()#返回到上一层iframe
    #最外层->top-frame -> baidu-frame

    二、多窗口切换 driver.switch_to.window()
    # 获取当前所有打开的窗口的句柄
    handles = driver.window_handles
    # 获取当前窗口句柄
    handle = driver.current_window_handle
    # SwitchToWindows接受浏览器TAB的句柄
    driver.switch_to.window(handles[1])
    # 获取所有的tab名称
    # driver.find_element_by_css_selector('[href="/new-index/"]').click()
    # all = driver.window_handles
    # print(all)
    # 切换页面
    # driver.switch_to_window(all[1])
    # driver.find_element_by_css_selector('#newtag').send_keys(111)
    # driver.close() # 光标不会回到上一个页面,需要重新切回
    # driver.switch_to_window(all[0])
    # driver.quit()
    三、警告框处理  driver.switch_to.alert() driver.switch_to.confirm() driver.switch_to.prompt()
    方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作
    e = driver.find_element_by_css_selector('#alert')
    e.click()
    # print(driver.switch_to.alert.text) #打印弹窗内容
    # driver.switch_to.alert.accept() #确认系统弹窗
    # driver.switch_to.alert.dismiss()#取消
    # 发送文本至警告框。keysToSend :将文本发送至警告框
    driver.switch_to.alert.send_keys(keysToSend= 'keysToSend')
    四、Select
    在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块)。
    #应用select 模块必须为select标签编写的下拉框
    引入方法: from selenium.webdriver.support.select import Select
    # s = driver.find_element_by_xpath('//select[1]')
    # Select(s).select_by_index(3) #四川
    # Select(s).select_by_value('3')#北京
    #当元素中还含有元素的话,就可以在find_element来缩小范围 (self.el)
    #is_select 用法
    print(driver.find_element_by_css_selector('#on').is_selected())
    print(driver.find_element_by_css_selector('#off').is_selected())
    五、窗口截图
    # 截图  就用这一个
    # driver.get_screenshot_as_file('demo1.png')
    六、关闭窗口
    # 退出并关闭所有页面驱动
    # driver.quit()
    # 当开启多个时,关闭当前页面
    # driver.close()
  • 相关阅读:
    IO模型
    MySQL存储引擎问题
    Flask信号流程
    Flask应用运行流程
    Linux远程连接及常用指令
    Linux的安装与配置
    python GIL锁问题
    python深浅拷贝问题
    pyhton中的__new__和__init__
    直流调速系统Modelica基本模型
  • 原文地址:https://www.cnblogs.com/chendai21/p/8954747.html
Copyright © 2011-2022 走看看