使用selenium登录126邮箱定位失败原因

刚开始入手学习selenium登陆126邮箱愣是运行不成功,总是提醒定位失败,不管是用id,还是classname,还是classpath等等,都是一样的效果。然后就百度。搜到了答案

使用id定位

 Message: no such element: Unable to locate element: {"method":"id","selector":"auto-id-1537235284167"},找不到元素。原因是由于此id是动态id,每次刷新http://www.126.com页面该值都会变话。因此找不到对应元素。

使用类定位

原因是:该class是含有空格的复合类。无法直接使用find_element_by_class_name()方法查询。

还是提示找不到元素,原因是:由于定位元素仅会在当前所处的frame中寻找该元素,如果有多个frame时需要先切换到对应的frame下才能够找到该元素。仔细查看页面信息,找到到id为x-URS-iframe的iframe。

如果未加载完毕,依旧定位不到元素所在的frame。所以此时需要加一个延时操作,time.sleep()。使用time的时候需要import time模块。

然后就可以正常运行成功了

import time

 

driver = webdriver.Chrome()

driver.get("http://www.126.com")

 

time.sleep(2)

driver.switch_to.frame("x-URS-iframe"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值