小踩一坑:元素在页面可以定位到,运行时找不到该元素。
找到原因:元素在iframe标签内。
一、 iframe
iframe: 元素会创建包含另外一个文档的内联框架(即行内框架)-HTML中镶嵌HTML。
frame: frameset 中的一个特定的窗口-独立窗口。
Frame与Iframe两者可以实现的功能基本相同,Iframe比Frame具有更多的灵活性。 frame是整个页面的框架,iframe是内嵌的网页元素,也可以说是内嵌的框架。
二、广发银行模拟用户窗口
1.开广发银行:
http://www.cgbchina.com.cn/
可以自行百度搜索广发银行,请进入官网不要进入广发信用卡申请官网。
2.点击在线演示
2.方法二:iframe是唯一的。
由于id,name是随机的,要定位比较困难,此处由于iframe的标签是唯一的,所以可以用tag_name定位
def iframes(self,iframe):
self.driver.switch_to_frame(iframe)
def find_element(self,by,selector): # 封装八大方法
elif by=='tag':
return self.driver.find_element_by_tag_name(selector)
framename=self.driver.find_element("tag","iframe")