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()
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16774.html