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

    今天在用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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值