web中元素寻找的一点问题(Unable to locate element: [id=“id“])的解决办法

这篇博客讲述了在使用 Selenium 自动化测试时遇到的无法定位 QQ 邮箱登录页面中 QQ 号输入框元素的问题。作者通过查找并理解 iframe 的概念,发现需要先切换到 iframe 内部才能找到相应元素。解决方案是在查找元素之前调用 `switch_to.frame('login_frame')` 方法。虽然解决了查找问题,但图片验证码的处理尚未涉及。
摘要由CSDN通过智能技术生成
from selenium import webdriver
import pyinputplus as pp
from selenium.webdriver.common.keys import Keys


browser = webdriver.Firefox()
browser.get('https://mail.qq.com/')
userElem = browser.find_element_by_id('u')
username = pp.inputNum('请输入QQ号码: ')
userElem.send_keys(username)
pwElem = browser.find_element_by_id('p')
password = pp.inputPassword('请输入密码: ')
pwElem.send_keys(password + Keys.RETURN)

刚开始学习,自己卡半天在这个问题上。查询好久才获得的解决办法,有不足之处还请指正。

这个程序能正常打开邮箱,但是到查找输入QQ号框的时候报错了,Unable to locate element: [id="u"],一直显示这,也尝试了好多办法,例如换查找的name,或者class,这些都是刚开始学的时候不懂,随便尝试,也不知道有没有用,结果还是不行。

后来问了以为自动测试的前辈,才有了一点头绪,这里边有一个iframe标签的问题,我学的书上没有。也就是文档中的文档,很像嵌套,所以只是查找内部肯定是查不到的,必须先过iframe这一关。先查找iframe然后再查询内部的元素。这样问题就好办了。

把下边的一句话,

browser.switch_to.frame('login_frame')

加入到你要查找的元素的那句话前边,也就是下边这个前边,

userElem = browser.find_element_by_id('u')

这个时候就完整了,可以正常输入QQ号和密码了。但是也仅限于解决这个查找的问题。QQ登录还有下一步的图片验证,我还没学到。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值