定位 iframe】的更多相关文章

这是使用谷歌看到的源码.想要往里面输入内容,需要使用js. 这个iframe没有id,不能通过id直接定位到.但可以通用TagName来定位到iframe. WebDriver中定位的代码如下: String js="document.getElementsByTagName('iframe')[0].contentWindow.document.body.innerHTML='在iframe框中输入的内容'"; 2 ((JavascriptExecutor)driver).execu…
Selenium定位iframe动态ID. 126邮箱实例 买了本虫师的书来学习selenium2自动化测试,然后写第一个实例就遇到了一些坑,好在有热心的网友提供了帮助,解决了问题 要学习selenium总要先搭建好python环境,这个就不说了 ,网上一搜一大把,也要装好selenium包,毕竟要用到里面的webdriver,它支持firefox,IE,Opera,和Chrome, so我就装了火狐和谷歌的驱动,把驱动放在python文件夹里面就行了 之后按照上面的例子写了一个脚本 坑的是,我…
我们来看一段最早的代码: # coding: utf-8 from selenium import webdriverfrom time import sleep driver = webdriver.Firefox() driver.get("http://blog.hexun.com/") driver.find_element_by_id("read_btn").click() driver.maximize_window() sleep(3)driver.f…
定位iframe # 1.有id,并且唯一,直接写id driver.switch_to_frame("x-URS-iframe") driver.switch_to.frame("x-URS-iframe") # 2.有name,并且唯一,直接写name driver.switch_to_frame("xxxx") driver.switch_to.frame("xxxx") # 3.无id,无name,先定位iframe元…
今天跟大家分享的是如何高效的定位iframe.我们来看一段最早的代码: # coding: utf-8from selenium import webdriverfrom time import sleep driver = webdriver.Firefox() driver.get("http://blog.hexun.com/") driver.find_element_by_id("read_btn").click() driver.maximize_win…
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 问题:有一些元素,无论是通过id或是xpath等等,怎么都定位不到. 分析:这很可能是因为你要定位的元素被嵌套在了当前页面的一个iframe元素中,Selenium对iframe中的元素有特殊的定位规则,WebDriver不能够直接进行定位. 解决办法:我们要把这个iframe元素找出来,让WebDriver转移到这个iframe元素上,之后再让WebDriver对iframe中的元素进行定位.…
以东方财富网登录页面为例: 在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login"> <iframe class="frame_login" src="https://exaccount.eastmoney.com/home/login?request=%7b%22agentPageUrl%22%3a%22https%3a%2f%2fpa…
在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login"> <iframe class="frame_login" src="https://exaccount.eastmoney.com/home/login?request=%7b%22agentPageUrl%22%3a%22https%3a%2f%2fpassport.eastmon…
场景 在web 应用中经常会出现frame 嵌套的应用,假设页面上有A.B 两个frame,其中B 在A 内,那么定位B 中的内容则需要先到A,然后再到B.      switch_to_frame 方法可以把当前定位的主体切换了frame 里.怎么理解这句话呢?我们可以从frame的实质去理解.frame 中实际上是嵌入了另一个页面,而webdriver 每次只能在一个页面识别,因此才需要用switch_to.frame 方法去获取frame 中嵌入的页面,对那个页面里的元素进行定位.   …
本节知识点: 多层框架或窗口的定位: switch_to_frame() switch_to_window() 智能等待: implicitly_wait() 对于一个现代的web应用,经常会出现框架(frame) 或窗口(window)的应用,这也就给我们的定位带来了一个难题. 有时候我们定位一个元素,定位器没有问题,但一直定位不了,这时候就要检查这个元素是否在一个frame中,seelnium  webdriver 提供了一个switch_to_frame方法,可以很轻松的来解决这个问题.…
1. 一般webdriver要操作页面元素需要在Top Window的状态下,如下: 2.当浏览器显示iframe时,用正常的元素定位是没有效果的,需要将页面装换到iframe下再对页面元素进行操作 driver.switch_to.frame("iframe")driver.find_element_by_xpath(".//*[@id='detailForm']/div[3]/div/input").get_attribute("value"…
# name = top-frame # 如果iframe有name属性 或 id属性则 可以直接在frame种填写 # 如果没有name和id属性 frame() 可以接受elementOBj eleObj = driver.find_element_by_css_selector('[src="/new-index/"]') # # 切换到 top-frame driver.switch_to.frame(eleObj) # top-frame driver.switch_to.f…
Open Browser https://mail.163.com/ gc Maximize Browser Window sleep 2 #进入if框 Comment Input Text name=email a1331653316Select Frame xpath=//*[@id="loginDiv"]/iframe[1] sleep 2 Input Text name=email duocehsi sleep 2 Input Password name=password 12…
我们在使用selenium的18中定位方式的时候,有时会遇到定位不上的问题,今天我们就来说说导致定位不上的其中一个原因---iframe 问题描述:通过firebug查询到相应元素的id或name等,但在定位此元素的时候就是报错,提示: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 问题原因:元素定位不到 问题分析:通过firebug可以看到,但就是定位不到,这时候很有可能…
iframe原因定位不到元素 现在的项目后台基本都是上左右结构,要出现这个结构效果,需要使用到了iframe标签: 我们先说说iframe在java中使用的方法: driver.switchTo().parentFrame()://子frame切回到父frame driver.switchTo().frame()://切入frame中 driver.switchTo().defaultContent()://从frame中切回主文档 想要定位iframe并切进去,可以通过如下代码: driver…
iframe是HTML里面嵌套HTML的一种框架 1.查看iframe 1.Top Window:可直接定位 2.iframe#i:说明此元素在iframe上 3.iframe显示为空:(id或name为空) 4.右边这个看到是空的(2层iframe) 以126邮箱为例 from selenium import webdriverdriver = webdriver.Firefox()url = "http://mail.126.com/"driver.get(url) # 此时使用c…
场景: 在同一界面,需定位iframe里面的元素, 就需要切换至Iframe块,然后定位元素,验证完成后,再切换出来. 如果不切换至iframe ,会发现不管采取什么定位,都会报元素不存在.…
前言 有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换 以http://mail.163.com/登录页面10为案例,详细介绍switch_to_frame使用方法. 一.frame和iframe区别 Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性. frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架 Iframe标记又叫浮动帧标记,可以用它将一…
在公司boss系统中,经常会遇到多层iframe嵌套的情况,导致无法定位最里面那层iframe的元素. 其实很简单,只要一层层定位iframe,定位到你想要的那层iframe即可: 如果操作完需要返回到原来的那层iframe,就需要先退出iframe,进行重新定位. 代码如下: driver.switchTo().defaultContent(); driver.switchTo().frame(1); //第一个iframe,没有id/name,可以取下标来定位 driver.switchTo…
转自:https://www.jianshu.com/p/6e7d0359e4bb Selenium是浏览器自动化测试的工具之一,用过的人都懂他的好,也被他坑的不要不要的.今天就聊聊Selenium的iFrame定位和切换. 对于一个页面,正常浏览的时候,看到的一个完整正常的页面,但是,看似是整体的页面的背后,其中是可能会包含iFrame.正因为此,在编写自动化测试的时候,定位元素就出问题了. 如何定位iFrame 在页面区域右键,可以看到“This Frame”或者“Reload Frame”…
这几天在做自动化测试的时候发现一个问题,用JQUERY定位时,总是报错,MES:JQUERY IS NOT DEFINED. 检查自己定位没有问题,后来想是不是语法出了问题. 切换成XPATH来定位,还是报错. 然后再语法调试,发现NAME属性不能定位,不具有唯一性,有三个NAME值一样的IFRAME. 当时具体情况是:IFRAME有三个属性,NAME,SRC,CLASS.三个IFRAME除了SRC值不一样外,其它两个属性的值都一样. 所以只能通过SRC值来区分IFRAME了. 最后解决是通过:…
在自动化测试中,如果无法定位到一个元素,那么最大的可能是定位的元素是在iframe框架中,iframe对象代表一个HTML的内联框架,在HTML中,iframe每出现一次,一个iframe对象就会被创建. 定位iframe框架,首先需要进入到iframe框架,再定位iframe框架的元素,定位iframe的方式分2种,一种是以ID的方式,一种是索引的方式 以ID的方式定位时代码如下: 进入到iframe中,定位元素 browser.switch_to.frame('ID') browser.fi…
selenium进行自动化测试的一个很重要的东西那就是元素定位,如果元素都没法定位就无法操作它,也就无法进行自动化测试了.网上对于元素定位有很多的介绍,很详细很详细的,但是依然有很多新手总是会遇到无法定位的情况,在这里自己总结下元素定位. 先来看元素定位的方式 //使用id定位 userName = driver.findElement(By.id("TANGRAM__PSP_8__userName")); //使用class定位 userName = driver.findEleme…
前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的问题 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了避免透露个人账户信息,我直接加载配置文件,免登录了. 不懂如何加载配置文件的,看这篇Selenium2+python自动化18-加载Firefox配置 二.打开编辑界面 1.博客首页地址:bolgurl = "http://www.cn…
首先还是围绕以下几个方面来看: 1.什么是iframe? 2.为什么我们要定位iframe? 3.我们怎样定位iframe,与切换iframe? 1.什么是iframe? ♦ b/s架构都使用iframe,官方的定义是这样的:[iframe 元素会创建包含另外一个文档的内联框架(即行内框架)].什么意思呢,就像是我们的某个主页,里面有好多小模块,每      个 小模块用这个叫做iframe的东西分开来,方便维护,也方便开发各自开发各自的部分,互不相干. ♦ 通常不在同一个iframe分为两种情…
本篇内容主要表述以下几个问题: 1.iframe 这个是什么? 2.定位iframe 标签时遇到的几个报错总结. 3.显示等待与隐示等待的原理与优缺点. 4.无name,ID可变情况下的处理方式 5.frame标签中嵌套iframe标签时的处理思路 最开始根本没想到这个事情,就按照正常的方式操作,结果,,,这都是什么鬼.怎么都定位不到这个元素,不能进行下一步. 后来了解了一下,原来是iframe这个鬼东西在捣乱. 一.先说一下这个是什么东西 . firame: Iframe标记又叫浮动帧标记,可…
1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么是XPATH: XPath (XML Path Language) 是一门在 HTML文档中查找信息的语言,可用来在 HTML文档中对元素和属性进行遍历. 详细使用方法可见 W3School官方文档:http://www.w3school.com.cn/xpath/index.asp 1.2.XPA…
selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:3696 [第一部分]开篇:先认识Xpath的4种定位方法 跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我学起来! 第1种方法:通过绝对路径做定位(相信…
一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div/form/input")). 特点:这个路径是从网页起始标签开始一直到要定位的元素的路径,如果要定位的元素在页面最下面,则这个Xpath路径会非常长.如果在要定位的元素与页面开始之间的元素有任何增减,元素定位就会失败. 使用相对路径定位元素. 例如: driver. findElement(By.…
前言 有很多小伙伴在拿163作为登录案例的时候,发现不管怎么定位都无法定位到,到底是什么鬼呢,本篇详细介绍iframe相关的切换 以http://mail.163.com/登录页面10为案例,详细介绍switch_to_frame使用方法. 一.frame和iframe区别 Frame与Iframe两者可以实现的功能基本相同,不过Iframe比Frame具有更多的灵活性. frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架 Iframe标记又叫浮动帧标记,可以用它将一…