selenium +phantomjs 登录126邮箱 iframe定位问题

原创 2016年05月31日 17:29:57

    今天在用selenium 做126邮箱登录的时候,遇到一个奇怪的问题,我在程序定位 账号/密码输入框的时候  selenium+chromedriver是可以正常定位的,但是在phantomjs下定位不了,一阵头大,接口文档中的三种方式:


  原始页面:



我尝试使用以上三种方式,怎么测试都不成功,

第一种:

driver.switchTo().defaultContent();

driver.switchTo().frame("x-URS-iframe");

第二种:

driver.switchTo().defaultContent();

driver.switchTo().frame(driver.findElement(By.id("x-URS-iframe"));

:

driver.switchTo().defaultContent();

driver.switchTo().frame(0);


结果很悲剧,全部失败,第二,三种在chrome下是成功的,第一种在chrome,phantomjs都失败,第二,三种在phantomjs下同样失败.想想当时就很失落,查询了各种关于iframe加载的文档,没找到一个很好的诠释;但是有一点可以肯定页面肯定

加载了,因为利用截图功能,可能清楚的看到页面已经加载.

所以就在失落之余,想到一个特别笨的方式,通过使用driver.switchTo().frame(0);这种方式,把里边所有的iframe的pageSource全部打一遍,我不相信它没有加载, 很荣幸,测试成功

使用driver.switchTo().frame(2);意外获取到想要的结果,毕竟该iframe在第一个出现

复盘:

在对的方向面前多做一些常识,在错误的基础上累加自己对常识性认知的增加,另外多了解下浏览器/js加载原理,对解决问题也有很大的帮助,当然各个浏览器内核之前的

还是不同的




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Holmos自动化测试入门学习(四)---------------iFrame里面元素的定位

iFrame 定位的思想是先定位到iFrame,再定位iFrame里面的元素。 常用到的3个方法: select()--------------------------选取要操作的frame s...

selenium python登录126邮箱错误记录

1.准备做一个登录126邮箱的操作,用Firefox的firebug查看了下用户名框的id , 密码框的id都是id="auto-id-1491067388576" 这样一类,F5刷新浏览器,重新看了...

selenium WebDriver定位元素学习总结

定位元素先要掌握基本的HTML语法: http://blog.csdn.net/jojoy_tester/article/details/53222425 http://blog.csdn.net/...

Selenium自动化测试—1

记录一下最近学习自动化测试遇到的一些问题 问题1: 在元素定位中,可以根据属性class_name来定位。但是当class_name的属性值中存在空格,如果把属性全部值复制过来,以此定位,便会出现...

126邮箱登录---iframe

开始直接定位根本定位不了,后来发现里面包了一个iframe,解决办法如下: 写法一: 写法二: 注意: 1.中间注释掉的是另一种详细些的写法,两种都可以执行成功 2.126输入框不能使用i...

selenium-webdriver(python)定位问题

简单对象的定位       -----自动化测试的核心   对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以...

iOS8关于地图定位问题

最近做项目,牵扯到地图定位问题,因为之前iOS7上是可以用的,但是iOS8之后不知道什么原因定位的时候就是不弹出那个什么允许访问地址什么的了,然后百度了一下,发现iOS8中改了一些东西,具体代码如下,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)