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

(0)

相关推荐

  • 学习python中matplotlib绘图设置坐标轴刻度、文本

    总结matplotlib绘图如何设置坐标轴刻度大小和刻度. 上代码: from pylab import * from matplotlib.ticker import MultipleLocator, FormatStrFormatter xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数 xmajorFormatter = FormatStrFormatter('%1.1f') #设置x轴标签文本的格式 xminorLocator = M

  • Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法

    本文实例讲述了Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法.分享给大家供大家参考.具体如下: 看看下面的例子和效果吧 # -*- coding: utf-8 -*- from matplotlib.widgets import MultiCursor from pylab import figure, show, np t = np.arange(0.0, 2.0, 0.01) s1 = np.sin(2*np.pi*t) s2 = np.sin(4*np.pi*t

  • 修改python plot折线图的坐标轴刻度方法

    修改python plot折线图的坐标轴刻度,这里修改为整数: 代码如下: from matplotlib import pyplot as plt import matplotlib.ticker as ticker import numpy as np def std_plot(): overall_std = [34.369, 21.366, 16.516, 11.151] max_std = [36.769, 21.794, 14.390, 4.684] plt.figure() plt

  • Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法

    本文实例讲述了Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法.分享给大家供大家参考,具体如下: Matplotlib中文显示问题--用例子说明问题 #-*- coding: utf-8 -*- from pylab import * t = arange(-4*pi, 4*pi, 0.01) y = sin(t)/t plt.plot(t, y) plt.title('www.jb51.net - test') plt.xlabel(u'\u2103',fontp

  • Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度

    前言 matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作.每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域内画直线,给图添加标签(label)等.matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上. 在开始本文之前,不熟悉的朋友可以先看看这篇文章:Python

  • 使用Python实现图像标记点的坐标输出功能

    Sometimes we have need to interact  with an application,for example by marking points in an image,or you need to annotation some training data.PyLab comes with a simple function ginput() the let's you do just that .Here's a short example. from PIL im

  • Python使用matplotlib实现在坐标系中画一个矩形的方法

    本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法.分享给大家供大家参考.具体实现方法如下: import matplotlib.pyplot as plt from matplotlib.patches import Rectangle class Annotate(object): def __init__(self): self.ax = plt.gca() self.rect = Rectangle((0,0), 1, 1) self.x0 = None s

  • python matplotlib坐标轴设置的方法

    在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围.坐标轴刻度大小.坐标轴名称等 在matplotlib中包含了很多函数,用来对这些参数进行设置. 我们可以对坐标轴进行设置,设置坐标轴的范围,设置坐标轴上的文字描述等. 基本用法 例如: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成x轴上的数据:从-3到3,总共有50个点 x = np.lin

  • 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

  • python selenium 对浏览器标签页进行关闭和切换的方法

    1.关闭浏览器全部标签页 driver.quit() 2.关闭当前标签页(从标签页A打开新的标签页B,关闭标签页A) driver.close() 3.关闭当前标签页(从标签页A打开新的标签页B,关闭标签页B) 可利用浏览器自带的快捷方式对打开的标签进行关闭 Firefox自身的快捷键分别为: Ctrl+t 新建tab Ctrl+w 关闭tab Ctrl+Tab /Ctrl+Page_Up 定位当前标签页的下一个标签页 Ctrl+Shift+Tab/Ctrl+Page_Down 定位当前标签页的

  • 教你怎么用Python selenium操作浏览器对象的基础API

    前言 相比于高大上的各种Selenium进阶指南,个人认为夯实基础至关重要. 在Selenium测试框架的API中,主要分为三大类: 1.对浏览器本身的相关操作. 2.对浏览器页面中,元素的定位操作. 3.对浏览器页面中元素进行定位后,对该元素的一些操作.如:点击.输入等操作. 我们本篇文章先说说Selenium框架对浏览器对象的基础操作. 一.导入Selenium库 # 导入Selenium驱动 from selenium import webdriver 二.创建浏览器对象 即:打开一个浏览

  • Python+selenium实现浏览器基本操作详解

    目录 关闭 driver 启动的浏览器 浏览器最大化与设置浏览器窗口大小 浏览器最大化 设置浏览器窗口大小 浏览器的前进.后退与刷新页面 关闭 driver 启动的浏览器 上一章节文末,我们介绍了关于两种关闭浏览器的方式,这里不做过多的复述.(实在是这一章节的内容太少了) 在 selenium 中,提供了两种关闭 driver 启动的浏览器的方式: close() 方法:该方法可以关闭浏览器,但是它关闭的只是浏览器的窗口,由 driver 启动的浏览器的进程依然还在,会占用一定的资源. quit

  • Python+Selenium实现浏览器标签页的切换

    目录 selenium 实现浏览器标签页句柄的切换 浏览器标签页本地文件准备 利用 selenium 实现浏览器页面的切换 在实际工作中,我们经常会遇到页面切换的情况.就比如当点击了某个功能的按钮后,浏览器出现了新的标签页,需要在这些标签页之间进行切换.要如何通过 selenium 来实现这样的场景呢?这就是我们今天要学习的内容. selenium 实现浏览器标签页句柄的切换 浏览器标签页本地文件准备 这一段纯粹是因为内容太少,拿来凑字数的... 同样的,这里所使用的是我们本地的 multi.h

  • js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码

    获取浏览器窗口的可视区域高度和宽度,滚动条高度有需要的朋友可参考一下.IE中,浏览器显示窗口大小只能以下获取: 代码如下复制代码 复制代码 代码如下: document.body.offsetWidth document.body.offsetHeight 在声明了DOCTYPE的浏览器中,可以用以下来获取浏览器显示窗口大小: 代码如下复制代码 复制代码 代码如下: document.documentElement.clientWidth document.documentElement.cli

  • python selenium 获取标签的属性值、内容、状态方法

    获取标签内容 使用element.attribute()方法获取dom元素的内容,如: dr = driver.find_element_by_id('tooltip') dr.get_attribute('data-original-title') #获取tooltip的内容 dr.text #获取该链接的text 获取标签属性 link=dr.find_element_by_id('tooltip') link.value_of_css_property('color') #获取toolti

  • Python Selenium 之关闭窗口close与quit的方法

    selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别. 1.看源码或API 这是close()的说明: Closes the current window. 关闭当前窗口. 这是quit()的说明: Quits the driver and closes every associated window. 退出驱动并关闭所有关联的窗口. 从这里就很明显的看出来这两个方法的区别,一个关闭当前窗口,一个关闭所有窗口,下面写一小段代码测试一下. 2.代码试验 代码

  • Python+selenium 获取一组元素属性值的实例

    获取一组href元素属性的值 lst = driver.find_elements_by_class_name("ib-it-text") for lst in lst: lst = lst.get_attribute("href") print(lst.get_attribute("href")) 以上这篇Python+selenium 获取一组元素属性值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python selenium 获取接口数据的实现

    python selenium 获取接口数据. selenium没有直接提供查询的函数,但是可以通过webdriver提供的API查询,使用的函数是Network.getResponseBody webdriver提供的API文档:https://chromedevtools.github.io/devtools-protocol/tot/Network/ Network.getResponseBody文档说明: Network.getResponseBody的参数是requestid,requ

随机推荐