Python+selenium+webdriver 解决多窗口跳转后的当前页面元素定位

在使用Python的selenium进行网页自动化测试时,经常会遇到页面跳转后元素定位失效的问题。这是因为默认的driver仍然指向原来的页面。解决方法是获取并切换到新的窗口handle。通过遍历driver的窗口句柄,可以实现窗口间的切换,从而正确定位到目标元素。以百度搜索为例,演示了在跳转到新窗口后如何进行元素操作。日志打印能帮助理解这一过程。
摘要由CSDN通过智能技术生成

描述:通常我们selenium元素的时间经常遇到只要跳转页面了,定位就总是找不到我要找的元素,这是因为的你定位指针driver没有指向第二个页面,所以无法定位。知道原因后哪怎么来切换定位窗口呢,很简历。

通过下面语句可获取当前指定的窗口handle name,但是这里很多学者会觉得他获取的就是第二个页面的handle name,从页面显示可得知,其实错了,我也犯过这些的错。我们需要获取driver会话中的所有窗口的handle name,然后在列表中通过遍历切换想要指定的窗口就行了
 

current_window = driver.current_window_handle  # 获取当前窗口handle name

 多页面产生后,通过遍历切换所要切换的窗口

all_window=driver.window_handles    # 返回当前会话中所有窗口的句柄。
print("all_window:: ",all_window)   # 打印当前所有窗口的句柄 name
for window in all_window:           #通过遍历判断要切换的窗口
    print("window::  ",window)
    if window != current_window:
        driver.switch_to.window(window)     # 将定位焦点切换到指定的窗口,包含所有可切换焦点的选项
current_window = driver.current_window_handle   # 获取当前窗口handle name

举例:

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值