一、Selenium
Selenium是一个模拟浏览器浏览网页的工具,主要用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器,支持Windows、Linux、IOS、Android等操作系统
1、Selenium的安装
pip install Selenium
Selenium是通过浏览器驱动来实现元素定位及操作的,因此需要安装浏览器驱动。
2、浏览器对象
(1)创建浏览器驱动对象
1.创建有界面的浏览器驱动对象
语法:
webdriver.浏览器名()
|webdriver.浏览器名(path)
功能描述: 执行后会驱动会直接操作浏览器,若驱动不在python目录中,则需传入驱动位置
返回情况: 返回一个WebDriver实例对象
前置条件: 需导入from selenium import webdriver
2.创建无界面的浏览器驱动对象
options=webdriver.ChromeOption()
options.add_argument('--headless')
browser=webdriver.Chrome(options=options)
(2)发送请求
语法:
browser.get(url)
功能描述: 执行后会直接从空白页跳转至指定的url
返回情况: 无返回
(3)关闭浏览器驱动对象
语法:
browser.quit()
功能描述: 关闭浏览器驱动,执行后再使用browser时会抛出MaxRetryError
返回情况: 无返回
(4)浏览器驱动对象的属性
获取浏览器名称:browser.name
获取浏览器当前的url:browser.current_url
获取浏览器当前页面标题:browser.title
获取浏览器当前页面源码:browser.page_source
获取浏览器的窗口句柄:browser.current_window_handle
获取浏览器当前窗口所有句柄:browser.window_handles
(5)关闭当前浏览器页面
语法:
browser.close()
功能描述: 关闭当前浏览器页面
返回情况: 无返回
(6)控制浏览器位置和大小
- 控制浏览器大小
语法:
browser.set_window_size(x,y)
功能描述: 根据填写的像素控制浏览器大小
返回情况: 无返回
- 控制浏览器位置
语法:
browser.set_window_position(x,y)
功能描述: 设置窗口在屏幕的位置
返回情况: 无返回
- 浏览器窗口最大化
语法:
browser. maximize_window()
功能描述: 最大化浏览器窗口
返回情况: 无返回
- 浏览器窗口最小化
语法:
browser. minimize_window()
功能描述: 最小化浏览器窗口
返回情况: 无返回
(6)控制浏览器前进后退
1.控制浏览器前进
语法:
browser.forward()
功能描述: 浏览器前进一个页面
返回情况: 无返回
2.控制浏览器后退
语法:
browser.back()
功能描述: 浏览器后退上一个页面
返回情况: 无返回
(7)刷新浏览器当前页面
语法:
browser.refresh()
功能描述: 刷新浏览器当前页面
返回情况: 无返回
3、元素对象
(1) 元素定位
1.基本元素定位
语法:
browser.find_element(定位方法,value)
(好像python3.7版本之后只支持该方法定位,之前的版本可以使用find_element_by_方法() )
功能描述: 根据定位方法找到对应的元素并返回一个WebElement对象;若需要找一组元素的话就需要通过find_elements方法(返回的结果是由一组WebElement对象组成的列表)
前置条件: 定位方法需要提前导入包from selenium.webdriver.common.by import By
定位元素 | 定位方式 | 定位方法 |
---|---|---|
id | 通过属性id定位元素 | By.ID |
name | 通过属性name定位元素 | By.NAME |
class_name | 通过属性class name定位元素 | By.CLASS_NAME |