selenium-在新的页面上没法定位元素问题

场景:百度搜索qq邮箱->跳转到qq邮箱登录页->输入登录帐号

1.提示:
selenium.common.exceptions.NoSuchFrameException: Message: no such frame
在这里插入图片描述

思考1:是不是iframe定位不准确,换了一种定位方式:
driver.switch_to.frame(driver.find_element_by_id(‘login_frame’))
结果仍不行

思考2:是否是iframe框架还没加载出来,添加强制等待
time.sleep(4)
结果仍不行

思考3:是不是和iframe没有关系,找到一个不用跳转iframe就可以定位的元素
如:driver.find_element_by_link_text(‘基本版’).click()
结果不行:提示 selenium.common.exceptions.NoSuchElementException: Message: no such element:
证明确实不是跳转iframe框架问题,整个页面元素都无法定位

思考4:把邮箱页面单独拿出来,直接打开,看是否能够操作元素
在这里插入图片描述
结果可操作成功,输入了登录帐号

思考结果:问题原因:是跳转到新页面(由百度跳转到邮箱页面),无法定位元素问题

百度搜索后(https://blog.csdn.net/qq_40027987/article/details/78856204),
找到解决方案应获取新页面句柄:
num=driver.window_handles
#获取当前页句柄
driver.switch_to.window(num[1])
#跳转到新标签页
添加此代码
在这里插入图片描述
解决问题 0.0

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值