背景
selenium webdriver提供了几个处理浏览器窗口的方法,包含设置和获取窗口大小,位置。以下为总结。
webdriver提供的方法:
# 获取浏览器窗口大小,返回值是一个包含长和宽属性的字典。
get_window_size(windowHandle='current')
# 设置浏览器窗口大小
set_window_size(width, height, windowHandle='current')
# 返回浏览器窗口的位置,返回值是个包含xy坐标的字典
get_window_position(windowHandle='current')
# 设置浏览器窗口的位置,相当于拖动浏览器窗口
set_window_position(x, y, windowHandle='current')
# 获取浏览器窗口的大小和位置,相当于上面两个方法的并集。返回值是一个包含大小、坐标的字典。
get_window_rect()
# 设置浏览器窗口的大小和位置,相当于上面两个方法的并集。
set_window_rect(x=None, y=None, width=None, height=None)
示例程序:
from selenium import webdriver
from selenium.webdriver.support.select import Select
from time import sleep
chrome_driver = r'D:\Python3.7\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe'
driver = webdriver.Chrome(executable_path = chrome_driver)
driver.implicitly_wait(10)
driver.maximize_window()
ulr = r'http://www.baidu.com'
driver.get( ulr )
# ==============================================
# window_size
# ==============================================
print(driver.get_window_size())
driver.set_window_size(800, 600)
print(driver.get_window_size())
# ==============================================
# window_position
# ==============================================
print(driver.get_window_position())
driver.set_window_position(200,400)
print(driver.get_window_position())
# ==============================================
# window_rect
# ==============================================
print(driver.get_window_rect())
driver.set_window_rect(x=10, y=20, width=1000, height=800)
print(driver.get_window_rect())
sleep(1)
driver.quit()
'''
stdout:
===============================================================
{'width': 1744, 'height': 1128}
{'width': 802, 'height': 602}
{'x': 8, 'y': 8}
{'x': 200, 'y': 400}
{'height': 603, 'width': 803, 'x': 200, 'y': 400}
{'height': 800, 'width': 1002, 'x': 9, 'y': 20}
[Finished in 16.4s]
===============================================================
'''
总结
这几个方法,模拟了人工操作浏览器时,对浏览器的放大,缩小,拖动等行为。
当然,webdriver还提供了最大化、最小化窗口的方法。
webdriver.minimize_window() #最小化窗口
webdriver.maximize_window() #最大化窗口