切换页面主要有以下两种情况

  1. 在浏览器上打开多个窗口(Windows),在窗口内切换
  2. 打开多个浏览器(Browser),在多个浏览器内切换

1. 切换窗口

  • 该操作适用于:打开两(多)个窗口页面,在打开的窗口页面进行切换操作
  • 主要需要用Select Windows 和Close Windows来处理弹出的窗口

代码如下

  import Selenium2Library
  import Collections

  Open Browser     https://www.baidu.com       chrome
  Maximize Browser Window
  Input Text       kw         ss
  Click Element    su    #点击搜索框
  sleep   3
  Click Element    xpath=.//*[@id='1']/h3/a[1]    #选择第一个页面
  #获取窗口的title
  ${titles2}      Get Window Titles
  ${titles2}    Get From List    ${titles}    1
  ${titles1}    Get From List    ${titles}    0
  Log      ${titles}
  log       ${titles2}
  log      ${titles1}
  #切换到第二个窗口
  Select Window    title=${titles2}
  #切换回第一个窗口,即搜索页面的那个窗口
  Select Window    title=${titles1}


2.切换浏览器

  • 该操作适用于:在多个浏览器之间切换进行切换操作
  • 主要用Open Browser 、Switch Browser 和Close Browser来处理

代码引用

    import Selenium2Library

    ${id1}    Open Browser    https://www.baidu.com    chrome    2nd_conn
    Maximize Browser Window
    Input Text    id=kw    你好
    Click Element    id=su
    #**新打开浏览器**
    ${id2}    Open Browser    http://www.jianshu.com/users/8e79ee3c829b/timeline    chrome
    Maximize Browser Window
    #**重新创建一个句柄**
    ${service args}=    Create List    --proxy=localhost:8888
    ${id3}    Create Webdriver    Chrome    service_args=${service args}
    Go To    https://www.baidu.com
    Wait Until Page Contains Element    id=kw
    Input Text     id=kw      hello
    #**切换浏览器**切换到第一次打开的 这里也可以用索引 1;也可以用2nd_conn
    Switch Browser    ${id1}
    Wait Until Page Contains Element    //div[@id='content_left']/div/h3/a
    Capture Page Screenshot
    #**切换浏览器**切换到第二次打开的
    Switch Browser    ${id2}
    Capture Page Screenshot
    #可在该页面进行操作。。。
    #**切换浏览器**切换到第三次打开的
    Switch Browser    ${id3}
    Capture Page Screenshot

关键字Create Webdriver 可以内置参数

遇到Frame框架

Select Frame 可以通过id name等元素进行定位,若frame/iframe框架代码如下图所示: 

则无法用id 或者name等系列参数进行定位时,可以采用以下方式进行定位:

Select Frame      Xpath=//*[contains(@src, 'http://10.0.20.53:8080/dwp/index.html')]

具体使用代码如下:

Wait Until Element Is Enabled     Xpath=//*[contains(@src,'http://10.0.20.53:8080/dwp/index.html')]

Select  Frame         Xpath=//*[contains(@src, 'http://10.0.20.53:8080/dwp/index.html')] 

Unselect  Frame

最后使用Unselect Frame退出frame/iframe框架

RobotFramework:切换页面和Frame框架的更多相关文章

  1. robotframework定位页面内Frame框架里的元素

    在自动化开发中,会遇到在页面内部点开一个新的页面后,新的页面元素无法定位到的情况,如点击下图的上传图片,弹出的界面无法直接定位到: 遇到这种情况需要查看弹出界面是否是Frame框架页面:打开火狐浏览器 ...

  2. JavaScript刷新页面的方法(包括Frame框架的刷新方式)

    JavaScript刷新页面的方法 1    history.go(0) 去指定的某页 2    window.location.reload()刷新当前页面 window.location.relo ...

  3. switch_to_frame,切换frame框架

    页面包含frame/iframe标签,需要先切换到该frame标签,再去定位属于这个frame的元素.   如果要再去定位其他frame的元素,需要回到该frame的上级,定位到要选择的frame,不 ...

  4. Python-爬虫-针对有frame框架的页面

    有的页面会使用frame 框架,使用Selenium + PhantomJS 后并不会加载iframe 框架中的网页内容.iframe 框架相当于在页面中又加载了一个页面,需要使用Selenium 的 ...

  5. 页面嵌套frame,Selenium定位问题

    有时候,什么定位元素的方法都试过了,还是定位不到元素,就考虑frame切换问题 driver.switchTo().frame("定位到的frame元素"); //接下来就可以在这 ...

  6. JS操作frame框架

    1 框架编程概述 一个Html 页面可以有一个或多个子框架,这些子框架以<iframe>来标记,用来显示一 个独立的Html 页面.这里所讲的框架编程包括框架的自我控制以及框架之间的互相访 ...

  7. 【转】js frame 框架编程

    源地址:http://www.blogjava.net/lusm/archive/2008/02/11/179620.html 1 框架编程概述 一个Html 页面可以有一个或多个子框架,这些子框架以 ...

  8. html5-6 Frame框架窗口类型

    html5-6  Frame框架窗口类型 一.总结 一句话总结: 1.点左侧的a链接如何打开右侧页面? <a href='user/index.html' target='right'>& ...

  9. selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

    selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...

随机推荐

  1. linux软件的安装。使用rpm、yum或wget下载软件

    介绍 在linux中安装软件一般有一下几种方式: a.通过rpm包安装 b.通过yum在线安装(联网) c.weget url 在线下载软件(只负责下载,不安装) 1.通过rpm包来进行软件的安装和卸 ...

  2. AIX系统常用命令

    netstat -an | grep 9090  可以看到该端口正被监听,但却不知道是哪个进程占用了该端口 1. netstat -Aan|grep 端口号找到该端口连接对应的PCB/ADDR和连接的 ...

  3. iOS UILabel UITextView自适应文本,或文本大小自适应

    //UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )]; label.numberOf ...

  4. AJPFX简述Java中this关键字的使用

    Java中this关键字的使用主要有两处: 1.构造方法 this指的是调用构造方法进行初始化的对象. //有参构造public Human(String name, int age) { this( ...

  5. JAVA Map的使用

    学JAVA那么多天了,所以就不写那啥了,哈哈 Map 是一个很实用的东西,它查询的速度也是飞快的.还有很多好的地方, 至于好在哪里,我也说不清. 还是用代码来说吧: import java.util. ...

  6. VBScript(一)

    visual basic Script 好像是以个老掉牙的服务器端脚本语言,低版本的IE浏览器支持在浏览器里执行 几个特点 1. 大小写不敏感 2.在服务器端 inputBox, msgBox不被支持 ...

  7. Android Activity生命周期的几个问题

      每一个Android开发者都应该知道,android系统有四个重要的基本组件,即Activity(活动).Service(服务).Broadcast Receive(广播接收器)和Content ...

  8. 10个顶级的CSS3代码生成器

    新出来的在线工具和web应用允许开发人员快速创建网站,而无需手动一行一行地编写代码.当前,不断有新的框架和代码库涌现在前端开发这个领域里. 但是,这也让许多开发人员忘记了代码生成器以及它们在构建网站时 ...

  9. 解决jenkins插件列表为空的问题

    可能是由于Jenkins的更新网站被QIANG,因此,请使用 http://mirror.xmission.com/jenkins/updates/update-center.json 来进行更新

  10. ML-学习提纲1

    http://www.sohu.com/a/130379077_468714 本文用一系列「思维导图」由浅入深的总结了「统计学」领域的基础知识,是对之前系列文章做的一次完整的梳理,也是我至今为止所有与 ...