问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

selenium怎么定位IFrame里面的元素

发布网友 发布时间:2022-04-23 13:24

我来回答

2个回答

懂视网 时间:2022-05-13 16:27

问题: 有一些元素,无论是通过id或是xpath等等,怎么都定位不到。

分析: 这很可能是因为你要定位的元素被嵌套在了当前页面的一个iframe元素中,Selenium对iframe中的元素有特殊的定位规则,WebDriver不能够直接进行定位。

解决办法: 我们要把这个iframe元素找出来,让WebDriver转移到这个iframe元素上,之后再让WebDriver对iframe中的元素进行定位。

因为最近在用Java来做一些东西,所以就顺便说一下Selenium在Java环境下的使用,总共分三步:

第一步、 把Selenium的压缩包从官网上下载下来,解压缩后将所有的jar包——

都复制到java project下:

第二步、 右键项目->Build Path->Configue Build Path->Libraries->Add JARs->选择lib文件夹下所有的jar包->OK->OK:

第三步、 在项目中import和Selenium相关的类库并使用。

下面举个实际应用中的例子,拿360游戏中心的首页举例,尝试定位页面左侧的账号栏并输入用户名:

通过查看页面元素,你会发现它被嵌套在了一个iframe里,要定位这个input标签,代码如下:

运行结果如下,我们成功定位到了这个iframe中的input元素,并输入了用户名:

热心网友 时间:2022-05-13 13:35

以下面的html代码为例,我们看一下如何定位frame上的元素。
frame.html
<html>
<head>
<title>Frame</title>
<style>
#f_1 {width: 10em; height: 10em; border: 1px solid #ccc; }
#f_2 {display: none}
</style>
</head>
<body>
<p id = "p">Outside frame</p>
<iframe id = "f_1" src = "part1.htm"></iframe>
<iframe id = "f_2" src = "part2.htm"></iframe>
</body>
</html>
part1.htm
<html>
<head><title>Part1</title></head>
<body>
<p id = "f_p">This is part 1</p>
<input id = "btn" type = "button" value = "click me" onclick = "alert('hello')" />
</body>
</html>
switch_to方法会new1个TargetLocator对象,使用该对象的frame方法可以将当前识别的”主体”移动到需要定位的frame上去。
require 'selenium-webdriver'
dr = Selenium::WebDriver.for :chrome
frame_file = 'file:///'+File.expand_path(File.join(File.dirname(__FILE__),'frame.html'))
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见水猴,俗称水鬼。是好是坏 驱虫药多久吃一次 什么情况需要吃打虫药 我的微信公众号太久没有更新被冻结了,怎么样才能注销重新 三星note3画笔画的作品(扩展名SPD)怎么样下载到电脑?怎样转换成JPG格式... 火灾甲乙丙丁类怎么分 什么叫甲类、乙类、丙类和丁类液体 小分子化合物库选哪家放心? 怪物猎人世界肉块交货方法介绍介绍_怪物猎人世界肉块交货方法介绍是什么... 怪物猎人世界肉块获得方法介绍介绍_怪物猎人世界肉块获得方法介绍是什么... 开心消消消赚钱版福利 我的世界生存模式怎么造一栋好看的别墅,求步骤 iframe框架,怎么实现读取某个网页的特定位置? iframe位于浏览器的什么位置 我的世界在森林里建别墅选什么风格好? iframe 绝对定位的问题 我的世界生存模式怎么建造简单小屋 用iframe写的框架始终在页面的左上角,怎么定位到页面的中央!如果用div+... 我的世界怎么造一个美观的房子,我想要有二楼的,要有很多房间 iframe 页面中的定位 自由性极高的《我的世界》中怎样造一个大别墅? 关于iframe定位的问题 如何确定iframe中的页面在该iframe中的默认位置 QQ滔滔点亮了为什么又灭了??? 为什么我QQ音素图标亮了现在又灭了? 为什么我滴QQ音素标子亮了又灭了 Q吧点亮后又灭了如何再点亮? qq因素图标,已经点亮的为什么又灭了,如何才能再亮。 我想问一下,我的QQ书字图标已经点亮了。。为什么它又自动不亮了呢? 我的QQ音素明明点亮了为什么又灭了? QQ幸运字符点亮了之后为什么又灭了? 《我的世界》如何做一个小而实用的家? iframe的页面位置问题 我的世界创造模式怎么玩 怎么搭建一座漂亮的 如何在chrome浏览器中对iframe绝对定位 我的世界怎么建房子内部结构 iframe我不能定位啊,它老是把其他的div给覆盖了 我的世界方块升级之后,那些大神究竟是如何把房子搭建在树上的? 怎么让光标定位在iframe中? 在iframe里面可以应用锚点链接定位到iframe的上面某一个点么 我的世界房子装修设计图 卧室内怎么装修好看 iframe显示指定位置 怎样调整div中iframe的位置 怎么获取iframe里面的元素 如何设置一个写在iframe里面的div的绝对坐标位置(相对整个显示器)? 我的世界公主房间怎么装饰 可否控制iframe内嵌网页的位置? 我的世界只有方块造房子吗?为什么不设计圆形的,斜边等各种形状,来弥补凹凸不平,像现实中的建筑物那? 嵌套的iframe如何定位上一层的iframe的元素? 我的世界手机版 生存模式房子 提问:内控制度和管理制度有什么区别