虫师 selenium练习题 4.3.1 126邮箱练习

1.书本上写的代码和实际的有点出入,可能是126邮箱进行更改过,写完这段代码以后会发现报错,找不到元素
在这里插入图片描述
2.我们仔细分析126邮箱登录界面,需要点击这个地方才能跳转到登录窗口,于是按F12查看元素
在这里插入图片描述
3.我们发现这个id为switchAccountLogin,于是我们知道了需要点击一下这个才能进行跳转,于是有了driver.find_element_by_id(“switchAccountLogin”).click()这个语句
在这里插入图片描述
4.等你打开这个页面,你以为只要获取账号和密码的id或者Xpath值就可以登录的时候,你想太多了哈哈哈
在这里插入图片描述
5.我们按F12继续查看元素,我们发现会在他们之前会多了一个ifname
在这里插入图片描述
6.而这个ifname对应的则是这整块区域,所以我们要先获取这个区域,再去获取下面的账号和密码框,于是有了语句driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@id,‘x-URS-iframe’)]"))
driver.switch_to.frame:表示获取的ifname和frame
driver.find_element_by_xpath:获取xpath
contains:判断id x-URS-iframe是否存在,存在为true,不存在未false
在这里插入图片描述
7.这个时候我们来获取他的账号框的值,我们这里可以用name来获取,密码框的值也同理
在这里插入图片描述
在这里插入图片描述
8.我们再获取点击登录按钮的值,这个时候可以用id
在这里插入图片描述

大功告成,完整代码如下

import time #导入time库
from selenium import webdriver #导入驱动

driver = webdriver.Firefox()  #打开火狐浏览器
driver.get("http://www.126.com")  #打开126邮箱

driver.find_element_by_id("switchAccountLogin").click()  #点击账号密码登录
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@id,'x-URS-iframe')]")) #定位到登录页面


driver.find_element_by_name("email").clear() #清除账号框里面输入的值
driver.find_element_by_name("email").send_keys('username') #输入账号,username为你的126账号

driver.find_element_by_name("password").send_keys('password') #输入密码,password为你的密码
driver.find_element_by_id("dologin").click() #点击登录按钮
time.sleep(20) #设置等待时间20s,为了方便查看效果
driver.quit #退出浏览器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值