1.0 获取浏览器窗口坐标

python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现”Command not found”的情况。set_window_rect()函数也一样。

def get_window_rect(self):

"""

Gets the x, y coordinates of the window as well as height and width of

the current window.

:Usage:

driver.get_window_rect()

"""

return self.execute(Command.GET_WINDOW_RECT)['value']

def set_window_rect(self, x=None, y=None, width=None, height=None):

"""

Sets the x, y coordinates of the window as well as height and width of

the current window.

:Usage:

driver.set_window_rect(x=10, y=10)

driver.set_window_rect(width=100, height=200)

driver.set_window_rect(x=10, y=10, width=100, height=200)

"""

if (x is None and y is None) and (height is None and width is None):

raise InvalidArgumentException("x and y or height and width need values")

return self.execute(Command.SET_WINDOW_RECT,

{"x": x, "y": y, "width": width, "height": height})['value']

然而Webdriver.py文件还定义了get_window_position()函数和get_window_size()函数,可以用这两个函数来分别获取窗口的坐标和大小,而不需要用到win32gui的方法。

def get_window_size(self, windowHandle='current'):

"""

Gets the width and height of the current window.

:Usage:

driver.get_window_size()

"""

command = Command.GET_WINDOW_SIZE

if self.w3c:

if windowHandle != 'current':

warnings.warn("Only 'current' window is supported for W3C compatibile browsers.")

size = self.get_window_rect()

else:

size = self.execute(command, {'windowHandle': windowHandle})

if size.get('value', None) is not None:

size = size['value']

return {k: size[k] for k in ('width', 'height')}

def get_window_position(self, windowHandle='current'):

"""

Gets the x,y position of the current window.

:Usage:

driver.get_window_position()

"""

if self.w3c:

if windowHandle != 'current':

warnings.warn("Only 'current' window is supported for W3C compatibile browsers.")

position = self.get_window_rect()

else:

position = self.execute(Command.GET_WINDOW_POSITION,

{'windowHandle': windowHandle})['value']

return {k: position[k] for k in ('x', 'y')}

2.0 获取窗口句柄

handle = driver.current_window_handle #获取当前窗口句柄

handles = driver.window_handles #获取所有窗口句柄

切换句柄可以使用

dr.switch_to.window(handle) #其中handle为获取到的窗口句柄

假设handles为获取到的所有窗口,则handles为一个list,可使用访问list的方法读取句柄。

dr.switch_to.windows(handles[0]) #切换到第一个窗口的句柄

dr.switch_to.windows(handles[-1]) #切换到最新窗口的句柄

以上这篇Python+selenium 获取浏览器窗口坐标、句柄的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: Python+selenium 获取浏览器窗口坐标、句柄的方法

本文地址: http://www.cppcns.com/jiaoben/python/241729.html

python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法相关推荐

  1. delphi 鼠标获取窗口句柄_Python 脚本自动对窗口进行截图

    利用Python自带的win32api和win32con.win32gui等模块,我们能执行许多windows下的自动化操作.比如两个窗口的自动点击操作,从软件中的窗口复制文本到txt中,甚至是截图操 ...

  2. Get Window Titles关键字——获取当前已经打开的浏览器窗口的所有Title

    Get Window Titles关键字:获取当前已经打开的浏览器窗口的所有Title:该关键字不需要任何参数 ============================================ ...

  3. python页面切换_Python+Selenium学习--窗口切换及操作元素

    场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...

  4. python soup歌词_Python 爬虫获取网易云音乐歌手的歌词

    上一篇文章爬取了歌手的姓名和歌手的 id ,这篇文章根据上篇爬取的歌手 id 来直接下载对应歌手的歌词.这些我其实可以写成一个大项目,把这个大项目拆成小项目一来方便大家的理解,二来小项目都会了的话,拼 ...

  5. python中网页关闭再打开_Python Selenium 之关闭窗口close与quit的方法

    selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别. 1.看源码或API 这是close()的说明: Closes the current window. 关 ...

  6. python输入多个整数 输入quit表示结束_Python Selenium 之关闭窗口close与quit的方法

    selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别. 1.看源码或API 这是close()的说明: Closes the current window. 关 ...

  7. python源文件后缀_Python怎样获取文件扩展名

    本文实例讲述了Python实现批量更换指定目录下文件扩展名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8#author: walker#date: 2013-12-06#fu ...

  8. python自动化测试登录_Python selenium自动化测试框架入门实战--登录测试案例

    本文为Python自动化测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件. ...

  9. python 模拟浏览器selenium_从零开始写Python爬虫 --- 3.1 Selenium模拟浏览器

    本来说好要写Mechanize模拟浏览器的,结果一看居然只支持2.x版本的Python,而且已经长久没有更新维护了,本着学新不学旧的原则,我决定跳过他,直接开学Selenium(其实就是我懒,逃 Se ...

最新文章

  1. archlinux安装TensorFlow带GPU
  2. 【Linux】一步一步学Linux——whereis命令(15)
  3. Win7 SP1 安装SQL Server 2012时提示“此计算机上的操作系统不符合 SQL Server 2012的最低要求”...
  4. Java类名.方法和变量
  5. 分享一个用Axure写的PRD文档
  6. 5G到来,App的未来,是JavaScript,Flutter还是Native ?
  7. 如何在uniapp中使用百度云实现OCR身份证识别功能
  8. 地理信息系统(第二版)汤国安等编著第一章1.1-1.2节
  9. Data Structures and Algorithm Analysis in C, Second Edition(《数据结构与算法分析》C语言版 第二版)——Mark Allen Weiss
  10. mysql表结构设计工具_表结构设计器(EZDML)
  11. Flutter 监听返回键
  12. excel文件被写保护怎么解除_excel表格受保护怎么解除保护
  13. 工具 xshell无法使用,需要更新的问题
  14. pad平板性能测试软件,安兔兔评测iPad版
  15. 两种方法 Find inorder succ of BST
  16. python Process finished with exit code -1073741571 (0xC00000FD)
  17. 云计算中Region、AZ、POD的三角关系
  18. Ubuntu 18.04 下wine的安装以及wine-mono, wine-gecko 的安装
  19. 目前中国互联网现状和UI设计行业现状分析!
  20. 使用UUID作为数据库主键产生的问题及解决方案

热门文章

  1. mysql native数据同步_记一次MySQL(5.7版本)数据库的主从同步和备份
  2. 软件开发质量的双保险 — 1.设计验证与软件测试
  3. 【2017年第3期】开放政府环境下医药公司与医生之间的价值转移
  4. 作者:丁伟(1972-),男,博士,中国联合网络通信有限公司网络技术研究院高级工程师。...
  5. 【Java】模拟分组交换网络的时延、丢包
  6. 【数据库系统】SQL修改的注意事项
  7. 【Java】随机发牌程序
  8. 静态路由心法口诀:路由表少什么网络加什么网络
  9. C++中枚举的用法(比较全面)(转)
  10. HTML5 获得canvas油漆环境