==============================================
切换窗口
场景一:两个链接url在同一个窗口
1 | from selenium import webdriver<br>driver = webdriver.Chrome()<br>driver.get( "https://www.baidu.com" )<br>driver.maximize_window()<br> print (driver.title)<br>url2 = "http://jd.com" <br>driver.get(url2)<br> print (driver.title) |
场景二:两个链接url在不同的窗口
1 2 3 4 5 6 7 8 9 | from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get( "https://www.baidu.com" ) driver.maximize_window() print (driver.title) a = "window.open('http://www.jd.com')" driver.execute_script(a) sleep( 2 ) |
场景三:多个窗口,title都是显示第一个
3.1
1 2 3 4 5 6 7 8 9 10 11 12 13 | from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get( "https://www.baidu.com" ) driver.maximize_window() print (driver.title) a = "window.open('http://www.jd.com')" driver.execute_script(a) sleep( 2 ) print (driver.title) b = "window.open('http://www.duoceshi.cn')" driver.execute_script(b) print (driver.title) |
3.2定位其他窗口,报错现象
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
print(driver.title)
a="window.open('http://www.jd.com')"
driver.execute_script(a)
sleep(2)
print(driver.title)
b="window.open('http://www.duoceshi.cn')"
driver.execute_script(b)
print(driver.title)
driver.find_element_by_link_text("行业资讯")
场景四:当两个窗口是切换窗口使用所有(0,和1)
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
print(driver.title)
a="window.open('http://www.jd.com')"
driver.execute_script(a)
sleep(2)
print(driver.title)
# b="window.open('http://www.duoceshi.cn')"
# driver.execute_script(b)
print(driver.title)
j=driver.current_window_handle #获取当前窗口句柄
print(j)
handles=driver.window_handles #获取当前所有的句柄
print(handles)
driver.switch_to.window(handles[1])
print(driver.title)
# driver.find_element_by_link_text("行业资讯")
driver.find_element_by_link_text("你好,请登录").click()
场景五:for 循环去切换窗口
1、多个窗口:
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
print(driver.title)
main_handle=driver.current_window_handle#保存主窗口的句柄,方便去了别的窗口之后切换回主窗口
driver.find_element_by_link_text("hao123").click()#新开一个“hao123”的窗口
js="window.open('https://www.taobao.com')"
driver.execute_script(js)#新开一个淘宝的窗口
all_handles=driver.window_handles #现在有3个handle,打比方我现在要切换到淘宝的那个窗口
for handle in all_handles:
driver.switch_to.window(handle)
if "淘宝" in driver.title:
break
print(driver.title)#检查是否在淘宝的窗口
driver.switch_to.window(main_handle)
print(driver.title)#检查是否已经切回了主窗口
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架