python获取屏幕坐标_Python+selenium 获取浏览器窗口坐标、句柄的方法

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 获取浏览器窗口坐标、句柄的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值