python+selenium五:多窗口切换与获取句柄

from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time

driver = webdriver.Firefox()driver.get("http://bj.ganji.com/")time.sleep(3)

# 1、获取句柄

# 获取当前的handle名字handle = driver.current_window_handleprint("获取到当前的handle:%s" % handle)


# 获取点击后新开页面的handle名字driver.find_elements_by_class_name("dt-t")[0].click()handle1 = driver.current_window_handleprint("获取到当前的handle:%s" % handle1)


# 获取全部的handlehandles = driver.window_handlesprint(handles)print(type(handles))    # 结果为list类型


# 2、切换句柄

# 切换到最后一个窗口driver.switch_to_window(handles[-1])
driver.switch_to.window(handles[-1])

# 判断是否切换成功:# 可根据title判断print(driver.title)# 可根据页面唯一元素判断

# 新页面的元素操作完了,回到第一个页面driver.close()  # 关闭当前窗口driver.switch_to_window(handle)print(driver.title)

# 复数定位的时候,如果页面无刷新,可以直接用一次定位复数的list

# 页面有刷新的时候,需要重新定位

# 关闭全部窗口,退出进程driver.quit()

原文地址:https://www.cnblogs.com/dwdw/p/9998639.html

时间: 2024-10-31 02:24:27

python+selenium五:多窗口切换与获取句柄的相关文章

7. 多窗口切换,获取句柄

有时候点击某个链接会打开一个新的窗口,获取窗口的唯一标识用句柄表示,以凤凰网为例:https://v.ifeng.com/ 获取当前窗口的句柄:driver.current_window_handle 获取所有句柄: driver.window_handles 切换句柄:driver.switch_to.window() 循环判断句柄是否与首页句柄相等 如果不相等,则说明是新的页面 获取到新的句柄,切换到新打开的页面 打印新页面的title,查看是否切换成功 from selenium impo

selenium多个窗口切换

造成新打开一个窗口,但是selenium不会自动跳转到新的串口,需要自己切换: # 你打开的浏览器,谷歌 browser = webdriver.Chrome() # 你中间的操作 ... # 获取当前浏览器所有的窗口 handles = browser.window_handles # handles为一个数组:handles = [窗口1,窗口2,...] # 窗口切换,切换为新打开的窗口 browser.switch_to.window(handles[-1]) # 切换回最初打开的窗口

selenium入门14 窗口切换

窗口切换: 当前窗口句柄 current_window_handle 所有的窗口句柄 window_handles 切换窗口 switch_to_window() #coding=utf-8 #切换窗口 from selenium import webdriver import time dr = webdriver.Firefox() dr.get("http://www.baidu.com") dr.find_element_by_link_text("登录")

python学习之多窗口切换

多窗口切换: from selenium import webdriver d = webdriver.Firefox() d.window_handles #显示所有的窗口 d.current_window_handle#x显示当前窗口 d.switch_to_window(d.window_handles[1])#显示第一个窗口 d.current_url d.current_window_handle#x显示当前窗口 d.switch_to_window(d.window_handles[

python selenium打开新窗口,多窗口切换

from selenium import webdriver browser=webdriver.Firefox() browser.maximize_window() browser.get('https://www.baidu.com') js='window.open("https://www.sogou.com");' browser.execute_script(js) print browser.current_window_handle # 输出当前窗口句柄(百度) ha

python selenium无法最大化窗口

问题原因:报错提示cannot get automation extension根据各种调试,发现是对应版本不对,上图发现selenium的版本是57.0.2987.133,需要driver为2.29以上的.而当前driver的版本为2.27,所以就会报错. 解决方法:替换上最新版本的driver即可

selenium测试(Java)--多窗口切换(十三)

如果遇到点击按钮或链接后出现新窗口的情况,就需要使用窗口切换的方法. 本例中就是先打开百度搜索界面,然后利用js打开一个百度新闻界面,然后通过selenium提供的窗口切换方法切换窗口 1 package com.test.windows; 2 3 import java.util.Iterator; 4 import java.util.Set; 5 6 import org.openqa.selenium.By; 7 import org.openqa.selenium.Javascript

win+python+selenium实现窗口和tab切换

这篇总结主要是关于两方面的需求:其一,在浏览器不同tab标签页之间按时间切换(同事用来不停刷新grid crontol 监控页面):其二,实现开启多个窗口,并将窗口缩放到一定范围,并齐占满整个桌面,按不同的时间间隔刷新几个页面. 一.标签页之间切换 之前这个通过找了一个浏览器插件tab-rotator实现了其需求,并未写程序实现,后面没事的时候网上翻selenium资料写了一个,内容如下: #code by www.111cn.netfrom selenium.webdriver.common.

Selenium弹出新页面无法定位元素问题(Unable to locate element)--多窗口切换

最近学习到多窗口切换,在页面操作过程中有时点击某个链接会弹出新的窗口,这时需要先切换到新窗口才能对其进行操作.Webdriver提供了switch_to.window( ) 方法实现在不同窗口中切换. 查阅相关资料,得到两种方法来定位到当前页面: 方法一: browser.switch_to_window(browser.window_handles[1]) 方法二:直接定位当前最新弹出的窗口 for handle in browser.window_handles:#方法二,始终获得当前最后的