关闭

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

936人阅读 评论(1) 收藏 举报

    今天在用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加载原理,对解决问题也有很大的帮助,当然各个浏览器内核之前的

还是不同的




1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:937次
    • 积分:20
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论