selenium-弹窗处理、窗口切换
### alert 弹窗处理
import time
from webdriver_helper import webdriver, get_webdriver
from selenium.webdriver import chrome
driver = webdriver.Chrome() # 实例化 ,刚启动浏览器是空白页面
driver.maximize_window() # 窗口最大化
driver.get("http://118.24.147.95:8086/switch_to.html") # 访问指定页面,会遭遇弹窗
alert=driver.switch_to.alert#获取alert弹窗 现在已经不怎么用了
msg=alert.text#获取弹窗内容
print(msg)
alert.accept()#点击确定
# alert.dismiss()#点击取消
# alert.send_keys()#输入内容
png=driver.get_screenshot_as_png()
with open("a.png","wb") as f:
f.write(png)
driver.quit() # 退出浏览器
新建窗口 切换窗口
tab(关闭)
window(最大化 最小化 全屏)
import time
from webdriver_helper import webdriver, get_webdriver
from selenium.webdriver import chrome
driver = webdriver.Chrome() # 实例化 ,刚启动浏览器是空白页面
driver.maximize_window() # 窗口最大化
driver.get("http://118.24.147.95:8086/") # 访问指定页面,会遭遇弹窗
driver.switch_to.new_window('tab')#在当前窗口打开新标签
driver.switch_to.new_window('window')#打开新窗口
#想在第二个窗口访问百度,跳转到百度
print(driver.window_handles)#所有窗口id
print(driver.current_window_handle)#当前窗口id
driver.switch_to.window(driver.window_handles[1])#跳转到你要去的那个窗口
driver.get("http://baidu.com")
input("按回车键继续...........")
driver.quit() # 退出浏览器
切换iframe
import time
from webdriver_helper import webdriver, get_webdriver
from selenium.webdriver import chrome
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # 实例化 ,刚启动浏览器是空白页面
driver.maximize_window() # 窗口最大化
driver.get("http://118.24.147.95:8086/switch_to.html") # 访问指定页面,会遭遇弹窗
driver.switch_to.alert.accept()
#先定位iframe
iframe=driver.find_element(By.XPATH,'html/body/iframe')
#切换iframe
driver.switch_to.frame(iframe)
el=driver.find_element(By.XPATH,'//h2')
assert el.text=='元素延迟渲染'
driver.quit() # 退出浏览器
切换iframe(场景二)http://118.24.147.95:8086/iframe_1.html
import time
from webdriver_helper import webdriver, get_webdriver
from selenium.webdriver import chrome
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # 实例化 ,刚启动浏览器是空白页面
driver.maximize_window() # 窗口最大化
driver.get("http://118.24.147.95:8086/iframe_1.html") # 访问指定页面,会遭遇弹窗
#定位iframe_2元素//*[@id="you_frame"]
iframe=driver.find_element(By.XPATH,'//*[@id="you_frame"]')
#切换iframe
driver.switch_to.frame(iframe)
ele=driver.find_element(By.XPATH,'/html/body/h2')
#断言
assert ele.text=='iframe_2'
#定位iframe_3元素 //*[@id="my_frame"]
iframe=driver.find_element(By.XPATH,'//*[@id="my_frame"]')
#切换iframe
driver.switch_to.frame(iframe)
ele=driver.find_element(By.XPATH,'/html/body/h2')
#断言
assert ele.text=='iframe_3'
#先定位iframe
# iframe=driver.find_element(By.XPATH,'html/body/iframe')
#切换iframe
# driver.switch_to.frame(iframe)
#返回上一层
# driver.switch_to.parent_frame()
#跳到顶层
# driver.switch_to.frame(0)
# input("按下回车键继续........")
driver.quit() # 退出浏览器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧