iframe 处理

 1 import java.io.File;
 2
 3 import org.openqa.selenium.By;
 4 import org.openqa.selenium.WebDriver;
 5 import org.openqa.selenium.WebElement;
 6 import org.openqa.selenium.chrome.ChromeDriver;
 7
 8 /*
 9  * iframe 处理
10  */
11 public class FrameTest {
12
13     public static void main(String[] args) {
14         WebDriver dr = new ChromeDriver();
15
16         File file = new File("learning/main.html");
17         String filePath = "file:///" + file.getAbsolutePath();
18         System.out.println("now accesss " + filePath);
19
20         dr.get(filePath);
21
22         String defaultID1 = dr.findElement(By.id("id1")).getText();
23         System.out.println("default ID1 text: " + defaultID1);
24
25         // 进入 id = "frame" 的 frame 中, 定位 id = "div1"; div = "input1"
26         dr.switchTo().frame("frame");
27         String frameDiv1 = dr.findElement(By.id("div1")).getText();
28         System.out.println("frame Div1 text: " + frameDiv1);
29
30         WebElement element = dr.findElement(By.id("input1"));
31         System.out.println("frame Input1 tagName: " + element.getTagName());
32
33         // 返回默认的 frame
34         dr.switchTo().defaultContent();
35         String defaultID2 = dr.findElement(By.id("id1")).getText();
36         System.out.println("default ID1 text: " + defaultID2);
37
38         dr.quit();
39     }
40
41 }

iframe 处理

时间: 2024-07-29 05:34:20

iframe 处理的相关文章

跨域cors方法(jsonp,document.domain,document.name)及iframe性质

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对 http://store.company.com/dir/page.html 同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 1.通过jsonp跨域[解决ajax跨域] 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的

iframe中的模态框遮罩父窗口原理

关键点: css的position定位为fixed或absolute css的z-index, 最顶层的值最大如遮罩层为0那么弹出框最好是大于等于1的整数,总之记住弹出层要比遮罩的z-index值大就行 如果弹出模态框的使用场景没有嵌套在iframe或frame中掌握以上两点加上点css功底就可以写出漂亮的模态框了 特殊场景会涉及到跨域问题,可以在父页面和子页面分别设置<script type="text/javascript">document.domain="

selenium查找动态的iframe的name

WebElement frame1 = driver.findElement(By.xpath("/html/body/div[9]/div[2]/div/iframe"));driver.switchTo().frame("frame1"); 不能使用by.name,是动态显示的.

iframe跨域访问

js跨域是个讨论很多的话题.iframe跨域访问也被研究的很透了. 一般分两种情况: 一. 是同主域下面,不同子域之间的跨域: 同主域,不同子域跨域,设置相同的document.domian就可以解决; 父页访问子页,可以document.getElementById("myframe").contentWindow.document来访问iframe页面的内容:如果支持contentDocument也可以直接document.getElementById("myframe&

js 滚动加载iframe框中内容

var isIE6 = !!window.ActiveXObject&&!window.XMLHttpRequest; //滚动加载 var scrollLoad =function(){ $("#content iframe[_src]").each(function(){ var t = $(this); if( t.offset().top<= $(document).scrollTop() + $(window).height() ) { t.attr(

C#操作iframe

<iframe id="cl" name="clf" src="xianshi.aspx" runat="server"  frameborder="0"></iframe> protected void LinkButton1_Click(object sender, EventArgs e) { cl.Attributes["src"] = "htt

easyUI的iframe子页面操作父页面元素

曾经试过这样的方法 在iframe子页面获取父页面元素       代码如下:       $('#objId', parent.document); 这样可以获得父页面的元素,但是调用EasyUI的方法的时候,就会报错. 郁闷了很久很久,最终找到方案,写法的区别,如下: parent.$('# objId') 这样调用方法就不会报错 如: parent.$('# objId').tabs("add", { title: title, content: content, closabl

Js动态获取iframe子页面的高度总结

问题的缘由 产品有个评论列表引用的是个iframe,高度不固定于是引发这个总结. 方法1:父级页面获取子级页面的高度 给元素设置高度 这方法是用在父级页面里的,通过获取子级页面的高度给iframe设置高度 涉及了一些兼容问题: IE用attachEvent | 3C用onload来判断子页面是否加载完成. IE用contentWindow | 3C用contentDocument来获取子页面 IE用document.documentElement.scrollHeight(兼容ie6 ie7)|

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

解决 swiper插件 嵌入 iframe 不能滑动问题

iframe里是另一个网页,所以swiper检测不到内页的事件. 方法一:直接设置样式  pointer-events: none; 但iframe里面所有事件将不能点击包括 a链接 方法二:自己动手写内页事件检测,然后改变swiper,这个一定是在js的同源策略下才能进行.直接上代码... var self = this; var isMove,pageX,poor,moveArr; var iframe = document.querySelector('#myiframe'); var w