python中的句柄操作的方法示例


Posted in Python onJune 20, 2019

通过窗口标题获取句柄

import win32gui
 
hld = win32gui.FindWindow(None,u"Adobe Acrobat") #返回窗口标题为Adobe Acrobat的句柄

通过父窗口句柄获取子句柄

#parent为父窗口句柄id
def get_child_windows(parent):
  '''
  获得parent的所有子窗口句柄
   返回子窗口句柄列表
   '''
  if not parent:
    return
  hwndChildList = []
  win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd), hwndChildList)
  return hwndChildList

根据句柄获取句柄标题和类名

import win32gui
title = win32gui.GetWindowText(jbid)  #jbid为句柄id
#获取标题
clsname = win32gui.GetClassName(jbid)  
#获取类名

根据句柄获取窗口位置

import win32gui
left, top, right, bottom = win32gui.GetWindowRect(jbid)
#分别为左、上、右、下的窗口位置

根据句柄进行点击操作

import win32api,win32con
 
win32api.SetCursorPos([横坐标, 纵坐标])
#根据横纵坐标定位光标
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
#给光标定位的位置进行单击操作(若想进行双击操作,可以延时几毫秒再点击一次)
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
#给光标定位的位置进行右击操作

根据句柄将窗口放在最前

win32gui.SetForegroundWindow(jbid)

Selenium+Python句柄操作

当我们打开浏览器,点击页面链接时,经常会遇到新的页面会在新窗口打开,而Selenium不会去自动识别新窗口,所以我们要做句柄切换操作,或者使用JS,如何操作呢?

(1)切换句柄:switch_to_window

# coding=utf-8 
from selenium import webdriver
import time

''' 主要运用方法:
1.current_window_handl:获得当前窗口句柄 
2.window_handles:返回所以窗口的句柄到当前会话
3.switch_to_window():切换窗口函数 
'''  
# 访问百度 
driver = webdriver.Firefox()
driver.get("http://www.jianshu.com")
driver.maximize_window()
time.sleep(3)
# 获取简书首页句柄 
current_windows = driver.current_window_handle
#打开第一条对应链接 
driver.find_element_by_xpath('/html/body/div[1]/div/div[1]/div[4]/ul/li[1]/div/a').click()
time.sleep(3)
# 获取所有打开句柄 
all_handles = driver.window_handles
# 进入新打开链接窗口 
for handle in all_handles:
  if handle != current_windows:
    driver.switch_to_window(handle)
    print(u"切换句柄成功")
time.sleep(4)
driver.quit()

(2)使用JS处理方法如下:

我们需要使用JS对HTML做源码处理,打开百度并登录,右键某个链接,查看:

python中的句柄操作的方法示例

可以看到target属性后边都紧跟着'_blank',我们想在当前页面打开,就必须需要去掉这个属性,操作步骤如下:

js = 'document.getElementsByClassName("mnav")[0].target="";'
driver.execute_script(js)
driver.find_element_by_link_text("新闻").click()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python比较两个列表大小的方法
Jul 11 Python
Python保存MongoDB上的文件到本地的方法
Mar 16 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
python如何将多个PDF进行合并
Aug 13 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
python 贪心算法的实现
Sep 18 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
基于Python实现一个春节倒计时脚本
Jan 22 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 #Python
一篇文章了解Python中常见的序列化操作
Jun 20 #Python
python集合是否可变总结
Jun 20 #Python
Django如何自定义model创建数据库索引的顺序
Jun 20 #Python
pyqt 多窗口之间的相互调用方法
Jun 19 #Python
pyqt5 实现多窗口跳转的方法
Jun 19 #Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 #Python
You might like
实用函数3
2007/11/08 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
什么情况下可以不写PHP的闭合标签“?>”
2014/08/28 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
深入分析python 排序
2020/08/24 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
市场专员岗位职责
2014/02/14 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
财会专业大学生求职信
2014/09/26 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
单位同意报考证明
2015/06/17 职场文书