在web 应用中经常会遇到frame 嵌套页面的应用,页WebDriver 每次只能在一个页面上识别元素,对
于frame 嵌套内的页面上的元素,直接定位是定位是定位不到的。这个时候就需要通过switch_to_frame()
方法将当前定位的主体切换了frame 里。

在上面的html 代码中通过iframe 表单嵌入一个百度页面,通过浏览器打开如下图

图4.9 iframe 嵌入百度首页
这个时候直接定位百度的输入框一定会报找不到元素的错误。那么可以使用switchTo().frame()先找到
frame.html 中的<iframe>标签,然后再定位百度输入框。

packagecom.mypro.jase;importjava.io.File;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.chrome.ChromeDriver;public classframe {public static void main(String[] args) throwsInterruptedException {WebDriver driver= newChromeDriver();File file= new File("E:/jase/frame.html");String filePath=file.getAbsolutePath();driver.get(filePath);//切换到iframe(id = "if")driver.switchTo().frame("if");driver.findElement(By.id("kw")).sendKeys("webdriver");driver.findElement(By.id("su")).click();Thread.sleep(5000);driver.quit();}
}

switchTo().frame()默认可以直接取表单的id 或name 属性进行切换。如:

//id = "if"
driver.switchTo().frame("if");
//name="nf"
driver.switchTo().frame("nf");

那么如果iframe 没有可用的id 和name 可以通过下面的方式进行定位:

//先通过xpth 定位到iframe
WebElement xf = driver.findElement(By.xpath("//iframe[@id='if']"));
driver.switchTo().frame(xf);

//退回上一级表单
driver.switchTo().defaultContent();

如果完成了在当前表单上的操作可以通过switchTo().defaultContent()方法返回到上一层表单。该方法
不用指定某个表单的返回,默认对应与它最近的switchTo().frame()方法。

Selenium Webdriver——操作隐藏的元素(三)switchTo().frame()相关推荐

  1. Selenium WebDriver找不到元素的三种情况

    今天抽点时间总结下Selenium WebDriver找不到元素的情况. 当然这里说的是css或者XPath都没写错,定位准确,也并非使用了不稳定的定位语句. 情况一:(StaleElementRef ...

  2. Selenium操作隐藏的元素

    在工作中我们会遇到一些隐藏的元素,那么selenium就会无法操作这些元素了,例如像这样: 我试着像以前操作一样,写了代码,操作之后报错:selenium.common.exceptions.NoSu ...

  3. python获取页面隐藏元素_selenium操作隐藏的元素(python+Java)

    有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: Python 页面主要通过"display:none"来控制整个下拉框不可见 ...

  4. c 后台代码调用ajax,.NET Selenium WebDriver操作调用浏览器后台执行Js(JavaScript)代码...

    1.Selenium WebDriver安装引用 注意:要用使用的浏览器肯定要装,并且Selenium.Chrome.WebDriver版本要和浏览器版一致. 如果要操作其它浏览器,则安装对应其它浏览 ...

  5. Selenium webdriver定位iframe里面元素两种方法

    以东方财富网登录页面为例: 在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login& ...

  6. selenium+webdriver操作cookie

    1.目标网站: https://www.fjggfw.gov.cn/ cookie具有时效性,因此需要先将cookie保存下来: 2.用requests获取cookie requests.utils. ...

  7. selenium 操作 html 5,[Selenium] WebDriver 操作 HTML5 中的 video

    测试播放,停止播放 http://www.videojs.com/ 示例: package com.learningselenium.html5; import static org.junit.As ...

  8. html给隐藏域赋值,selenium webDriver给隐藏域赋值 input hidden set value

    //直接这样无法给input hidden赋值 // driver.findElement(By.id("image_default")).sendKeys("a1112 ...

  9. selenium webdriver操作chrome options、 启用无痕模式、缓存烦恼

    当启用浏览器打开网页的时候,可以直接启用无痕模式,省去清理缓存这一步骤. 初始化ChromeOptions 并设置"–incognito" ChromeOptions option ...

最新文章

  1. Android-BLE蓝牙原理
  2. MySQL的set names命令详解
  3. Jython中文乱码问题
  4. 深度学习中Attention机制的“前世今生”
  5. POI中设置Excel单元格格式
  6. 【Java SE】记录一次Java实验(多态,集合,泛型)
  7. junit5 动态测试_JUnit 5嵌套测试
  8. SAP BPC最佳实践-BPC安装及配置的常见问题
  9. jmteter 参数提取器-使用正则表达式来提取数据
  10. 最新计算机毕业设计源码开源啦,java毕业设计,python毕业设计,c++毕业设计,php毕业设计,Android毕业设计,小程序毕业设计
  11. ThinkPad T14 Gen3拆机更换升级内存和固态硬盘
  12. 按键精灵通过句柄获取窗口坐标_按键精灵9 得到鼠标指向的窗口句柄
  13. Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题
  14. when函数c语言,when表达式
  15. Java获取国内手机号码归属地
  16. 设计模式系列:依赖倒置原则
  17. simd-neno加速
  18. 计算机网络丢包排查,ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通...
  19. EndNote X9 闪退解决办法(最简版)
  20. leetcode1567. 乘积为正数的最长子数组长度(Python3、c++)

热门文章

  1. curl 与 header 及 file_get_countents 访问内容时的区别
  2. IT兄弟连 JavaWeb教程 MVC设计模式
  3. C#:委托和自定义事件
  4. 区块链金融应用论坛关于量化的分享
  5. javascript仿韩国Google效果
  6. android fps 垂直同步,浅谈Android流畅度
  7. 案例:使用jquery的ajax load方法更新局部页面并应用NProgress库实现顶部进度条
  8. 【J2EE】第四章 SpringMVC
  9. 周一02.1编程语言介绍
  10. 【清北前紧急补课3】水题集锦