Python3.x:selenium获取iframe内嵌页面的源码

Python3.x:selenium获取iframe内嵌页面的源码

前言

在一些网页中经常会看到ifrmae/frame标签,iframe是嵌入式框架一般用来在已有的页面中嵌入另一个页面,当一个元素在iframe里时我们应该先切换到iframe里面。

语法

1.进入iframe

iframe = self.driver.find_element_by_xpath("//iframe[contains(@src,'https://************/auth?e_p=1&response_type=token')]")

self.driver.switch_to.frame(iframe)

2.释放/退出iframe

driver.switch_to_default_content()

实例代码

# python3
# author lizm
# datetime 2018-01-27 10:00:00
'''
    Demo;selenium获取iframe内嵌页面源码
    获取select下拉选项    
'''
from selenium import webdriver

#打开浏览器(不弹出浏览器页面)
driver = webdriver.PhantomJS()
#打开浏览器
#driver = webdriver.Chrome()
#最大化浏览器
#driver.maximize_window()
#打开页面
driver.get("http://*************/center_tjbg.shtml")
#通过contains函数,提取匹配特定文本的所有元素
frame = driver.find_element_by_xpath("//iframe[contains(@src,'http://**************/cms-search/monthview.action?action=china&channelFidStr=e990411f19544e46be84333c25b63de6')]")
#进入iframe页面
driver.switch_to.frame(frame)
#获取select标签
select = driver.find_element_by_id("channelFidStr")
# 获取select里面的option标签,注意使用find_elements
options_list=select.find_elements_by_tag_name('option')
# 遍历option
for option in options_list:
    #获取下拉框的value和text
    print ("Value is:%s  Text is:%s" %(option.get_attribute("value"),option.text))

#点击查询按钮事件
#driver.find_element_by_css_selector("input[class = 'btn']").click()
#退出iframe
driver.switch_to_default_content()
driver.quit()

作者:整合侠
链接:http://www.cnblogs.com/lizm166/p/8367499.html
来源:博客园
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/lizm166/p/8367499.html