dcsxlh

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

==============================================
切换窗口

场景一:两个链接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)#检查是否已经切回了主窗口




















posted on   多测师_肖sir  阅读(221)  评论(0编辑  收藏  举报
编辑推荐:
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
 
点击右上角即可分享
微信分享提示