我们知道,通过实例化一个WebDriver,基于WebDriver wire协议通过远程server就可以实现浏览器的操作。
今天要说的就是浏览器最基本的操作(基于python):浏览器打开与窗口大小控制。
1、打开浏览器
在python中,使用selenium需先导入webdriver,然后实例化WebDriver类。
导入:from selenium import webdriver
实例化WebDriver类:webdriver.Firefox()
如下图代码所示:
from selenium import webdriver driver = webdriver.Firefox()
这样,我们就可以打开Firefox浏览器了。
2、打开网址
打开浏览器后,WebDriver实例对象调用get()方法并输入url值即可打开指定url
如driver.get('https://www.baidu.com)
如下图:
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.baidu.com")
这样我们就打开了百度首页
3、最大化和最小化浏览器
WebDriver实例对象调用maximize_window()即可将浏览器最大化,浏览器最小化用minimize_window()
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.maximize_window()
driver.minimize_window()
这样我们就可以将浏览器窗口最大化和最小化了。
4、按尺寸打开浏览器
如果想按照一定的尺寸大小打开浏览器,则使用set_window_size()方法将浏览器设置一个指定大小
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.minimize_window() driver.maximize_window() driver.set_window_size(100, 50)
我们来看看set_window_size()这个方法:
def set_window_size(self, width, height, windowHandle='current'): """ Sets the width and height of the current window. (window.resizeTo) :Args: - width: the width in pixels to set the window to - height: the height in pixels to set the window to :Usage: driver.set_window_size(800,600) """ if self.w3c: if windowHandle != 'current': warnings.warn("Only 'current' window is supported for W3C compatibile browsers.") self.set_window_rect(width=int(width), height=int(height)) else: self.execute(Command.SET_WINDOW_SIZE, { 'width': int(width), 'height': int(height), 'windowHandle': windowHandle})
此方法有三个参数:width,height,以及windowHandle
width:浏览器的宽度像素点
height:浏览器的高度像素点
windowHandle:浏览器窗口句柄,默认当前窗口,如果需要指定窗口,则传入该窗口handle即可。
5、获取窗口尺寸大小
若想获得浏览器窗口尺寸大小,可使用get_window_size()方法。
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.minimize_window() driver.maximize_window() size = driver.get_window_size()
get_window_size()方法返回值类型为字典
{'width': 1295, 'height': 695} <class 'dict'>
我们可以看到,该字典有两个键值对,分别对应width(宽)和高(height)
我们再来看看get_window_size()这个方法:
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')}
该方法只有一个参数:windowHandle,且默认为当前窗口