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,但高版本后是没有这些插件的,还没有研究要如何判断,真正用到了再去研究了

posted @ 2019-04-04 11:17  山里姑娘  阅读(228)  评论(0编辑  收藏  举报