Selenium2+python--iframe
如果发现有些元素明明有很明显的相关属性,理论上是可以定位到的,但是就是定位不到,咋办?
看下这些元素是不是在iframe中,这里就涉及到iframe相关的切换
Frame和iFrame两者用法基本相同,frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架。
iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在另一个HTML中显示,它和Frame标记的最大区别是在网页中嵌入的<Iframe></Iframe>所包含的内容与整个
页面是一个整体,而<frame></frame>所包含的内容是一个独立的个体,可以独立显示。
1.切换Iframe
如果某些元素是在iFrame上,第一步则需要把定位器先切换到iFrame上,方法:switch_to_frame
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://mail.163.com/")
driver.implicitly_wait(30)
#切换iFrame
driver.switch_to_frame("x-URS-iframe")
driver.find_element_by_name("email").send_keys(username)
driver.find_element_by_name("password").send_keys(password)
# 释放iframe
driver.switch_to_default_content()
2.如何判断元素是否在iframe上
yoyo的案例是火狐安装了firebug和firepath,但高版本后是没有这些插件的,还没有研究要如何判断,真正用到了再去研究了