selenium 登录163、126邮箱不能识别元素定位及iframe处理方法

selenium 专栏收录该内容
2 篇文章 0 订阅

selenium学习登录163邮箱时,一直无法定位元素,ID随机生成,后来百度得知因为网易用了iframe框架,需要先定位到iframe框架,才能找到内部的元素。

但是iframe的ID也是随机生成,name为0
在这里插入图片描述
所以需要先找到这个元素才能定位

#找到iframe
iframe = bro.find_element_by_xpath('//div[@id="loginDiv"]/iframe')
#切换到iframe
bro.switch_to_frame(iframe)

定位前建议加延时,防止页面未加载完成去寻找,导致错误

代码:

from selenium import webdriver
import time

bro = webdriver.Chrome()
bro.get('https://mail.163.com/')

time.sleep(3)
iframe = bro.find_element_by_xpath('//div[@id="loginDiv"]/iframe')
bro.switch_to_frame(iframe)
time.sleep(2)
bro.find_element_by_name('email').clear()
bro.find_element_by_name('email').send_keys('账号')
time.sleep(1)

bro.find_element_by_name('password').clear()
bro.find_element_by_name('password').send_keys('密码')

time.sleep(1)
bro.find_element_by_id('dologin').click()
  • 4
    点赞
  • 6
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

wujialaoer

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值