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登录还有下一步的图片验证,我还没学到。