126邮箱定位问题
这是一篇随记,写一下关于126邮箱定位的问题。
126邮箱是selenium练习的经典案例,它的登录框是采用iframe形式,那么在定位的时候也是需要先进入到框架内才能定位。
这里采用python示例:
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(‘http://www.126.com’)
id = driver.find_element_by_id(“x-URS-iframe”)
driver.switch_to.frame(id)
driver.find_element_by_name(‘email’).send_keys(‘111’)
。。。
到这里我们进行运行的时候可能会定位不到,这时候有可能是因为页面元素还没有加载完成,那需要我们在页面加一些等待。
driver = webdriver.Chrome()
driver.get(‘http://www.126.com’)
time.sleep(5)
id = driver.find_element_by_id(“x-URS-iframe”)
driver.switch_to.frame(id)
driver.find_element_by_name(‘email’).send_keys(‘111’)
那这时候运行还有可能报错,为什么呢?明明我加了等待,页面也确实是加载完了,元素定位也是没有问题的,为什么还是定位不到?
这里就是一个坑了,以上的方法只能解决火狐浏览器的问题,如果是谷歌浏览器,可以这样写:
driver = webdriver.Chrome()
driver.get(‘http://www.126.com’)
time.sleep(5)
driver.switch_to.frame(0)
driver.find_element_by_name(‘email’).send_keys(‘111’)
driver.switch_to.frame(0)这个里面写入frame的序号,第一个就是0,第二个就是1,依次类推,这样就可以了