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

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Firefox()
driver.get("http://bj.ganji.com/")
time.sleep(3)
1、获取句柄
# 获取当前的handle名字
handle = driver.current_window_handle
print(f"获取到当前的handle:{handle}" )

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

# 获取全部的handle
handles = driver.window_handles
print(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()

python+selenium五:多窗口切换与获取句柄的更多相关文章
- Selenium:多窗口切换(获取窗口句柄handle)
我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...
- python+selenium之多窗口切换
#打开浏览器driver = webdriver.Firefox()driver.get(url)#获取当前窗口now_handle=driver.current_window_handle # 获取 ...
- python selenium 处理悬浮窗口(baidu tj_more)
python selenium 处理悬浮窗口 from selenium.webdriver.common.action_chains import ActionChainsActionChains( ...
- Selenium基础知识(五)多窗口切换
说到多窗口切换必须想到driver.switch_to.window()方法 driver.switch_to.window() 实现在不同窗口之间切换 driver.current_window_h ...
- selenium多个窗口切换
浏览器里面支持多窗口打开,例如这样: html里面写了: target="_blank" 造成新打开一个窗口,但是selenium不会自动跳转到新的串口,需要自己切换: # 你打开 ...
- selenium入门14 窗口切换
窗口切换: 当前窗口句柄 current_window_handle 所有的窗口句柄 window_handles 切换窗口 switch_to_window() #coding=utf-8 #切换窗 ...
- Python模拟浏览器多窗口切换
# 模拟浏览器多窗口切换 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要对应版本的Chro ...
- python学习之多窗口切换
多窗口切换: from selenium import webdriver d = webdriver.Firefox() d.window_handles #显示所有的窗口 d.current_wi ...
- python selenium打开新窗口,多窗口切换
# coding=utf-8 from selenium import webdriver browser=webdriver.Firefox() browser.maximize_window() ...
随机推荐
- shell提取文件后缀名,并判断其是否为特定字符串
如果文件是 .css文件 或 .js文件,则进行处理. file=$1 if [ "${file##*.}"x = "css"x ]||[ "${fi ...
- Neural Networks and Deep Learning(week3)Planar data classification with one hidden layer(基于单隐藏层神经网络的平面数据分类)
Planar data classification with one hidden layer 你会学习到如何: 用单隐层实现一个二分类神经网络 使用一个非线性激励函数,如 tanh 计算交叉熵的损 ...
- PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载
参考文献: 1.PHP PSR-4 Autoloader 自动加载(中文版) 2.PHP编码规范(中文版)导读 3.PHP-PSR-[0-4]代码规范 基本步骤: (1)在vendor 下新建一个项目 ...
- round_robin 的几种取值
ATS-6 的round_robin可以有4种算法可以选择 true Traffic Server goes through the parent cache list in a round robi ...
- WebAPI跨域处理
原文来自:http://www.cnblogs.com/heifengwll/p/6243374.html WebApi2跨域问题 一.跨域问题产生的原因:同源策略(Same origin pol ...
- C++:error 1189(转)
在VS 2013中编译程序时出现错误: 错误提示1: error C1189: #error : Building MFC application with /MD[d] (CRT dll versi ...
- Flask最强攻略 - 跟DragonFire学Flask - 第七篇 Flask 中路由系统
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- B. Light It Up
题目链接:http://codeforces.com/problemset/problem/1000/B 代码: #include<iostream> #include<cstrin ...
- oracle_集合函数
查询10和20号部门的员工 SQL> 1. select * from emp where deptno in (10,20); SQL> 2. select * from emp whe ...
- CSS在项目中常用的属性总结
1.媒体查询 2.如何快速生成适配各种浏览器的属性. 3.全面进军移动app开发.