若有任何学习问题,能够添加做者微信:lockingfreecss
一个框架就是一个独立的网页
frameset: 框架组,用来布局框架
frame: 具体的一个框架,通常放在frameset中
iframe: 内联框架, 能够嵌入到其余网页的body中python
switch_to.frame() # 只用切 iframe/frame 不用切framesetweb
switch_to.parent_frame() # 跳到上级 多层框架推荐使用
switch_to.defaut_content() # 跳出全部 一层框架推荐使用 也能够用switch_to.parent_frame()跳出框架微信
from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.maximize_window() driver.get("http://115.28.108.130/control.html") # iframe: 内联框架, 能够嵌入到其余网页的正文中, # frameset: 框架组,用来布局,能够嵌套,不能嵌入到body中, # frame,框架,须要放到frameset中 # 只用切iframe及frame, frameset是用来布局的,不用切 driver.switch_to.frame("parent_frame") driver.switch_to.frame("left") driver.find_element_by_link_text("连接1").click() driver.switch_to.parent_frame() # 这里不用swith_to.default_content(),否则还要再切到parent_frame driver.switch_to.frame("main") print(driver.find_element_by_tag_name("h2").text) # print(driver.find_element_by_xpath("/html/body/h2").text) sleep(5) driver.quit()
打开 http://115.28.108.130/control.html,点击连接1,输出右侧文本内容网络
也能够经过F12复制(不推荐:有可能有问题)框架
css选择器, 比xpath快
find_element_by_css_selector("#firstdiv")布局
*
能够标识任意标签from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.maximize_window() driver.get("http://115.28.108.130/control.html") div = driver.find_element_by_css_selector("#firstdiv>form>div:nth-child(2)") print(div.text) table = driver.find_element_by_css_selector("#firstdiv>form>div+table") print(table.tag_name)
打开 http://115.28.108.130/control.html#学习
all = driver.window_handles # 全部窗口句柄 old = driver.current_window_handle # 当前窗口出版 for h in all: # h 是当前从all中取出来的句柄 if h != old: # 若是取出来的不等于老窗口 driver.switch_to.window(h) # 切换到新窗口
all = driver.window_handles for h in all: driver.switch_to.window(h) if "腾讯课堂" in driver.title: break # 跳出循环
from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.maximize_window() driver.get("http://115.28.108.130/control.html") # 1. 切到新页面(只打开了两个页面) driver.find_element_by_partial_link_text("在新页面").click() print(driver.title) # 还在原页面 all = driver.window_handles old = driver.current_window_handle for h in all: if h!=old: driver.switch_to.window(h) print(driver.title) # 切换到了新页面 driver.find_element_by_id("kw").send_keys("龙腾育才") driver.find_element_by_id("su").click() sleep(1) driver.find_element_by_partial_link_text("腾讯课堂").click() # 又打开了新页面 # 2. 多窗口切换, 根据网页标题切换 print(driver.title) # 还在百度搜索页上 all = driver.window_handles for h in all: driver.switch_to.window(h) if "腾讯课堂" in driver.title: break else: print("没有找到相应的页面") print(driver.title) sleep(5) driver.quit()
打开百度 http://www.baidu.com
搜索赶集网
切换到赶集网,并打印标题测试
此为北京龙腾育才 Python高级自动化(Selenium部分)授课笔记
课程介绍
想要参加现场(北京)/网络课程的能够联系做者微信:lockingfree
- 高效学习,快速掌握Python自动化全部领域技能
- 同步快速解决各类问题
- 配套实战项目练习