本节主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开、休眠、前进、后退、刷新、设置窗口大小、截屏、退出、在新窗口打开链接,切换到新窗口等操作,以下以Chrome浏览器为例,Firefox和IE类似,此处仍以百度为例。

 一、打开网站

1.从selenium里面导入webdriver模块;

2.打开Chrome浏览器;

3.打开百度网址;

1 # coding:utf-8
2 # 从selenium导入webdriver
3 from selenium import webdriver
4 
5 # 打开Chrome浏览器
6 driver = webdriver.Chrome()
7 # 打开百度
8 driver.get("https://www.baidu.com")

二、设置休眠

由于打开网址后,如果网络不佳或页面加载渲染花费时间比较长,导致页面加载需要几秒钟,所以最好是等到页面加载完成后再继续下一步操作。

1. 从time模块中导入sleep方法;

2. 设置等待时间,单位是秒(s),时间值可以是小数也可以是整数;

1 # coding:utf-8
2 from selenium import webdriver
3 from time import sleep
4 
5 driver = webdriver.Chrome()
6 driver.get("https://www.baidu.com")
7 # 休眠2秒,参数可以为整数或小数
8 sleep(2)

三、前进和后退

1. 当在一个浏览器窗口打开两个页面后,返回上一页面,即点击浏览器左上角的左箭头按钮;

2. 返回到上一页面后,则可切换到下一页,即点击浏览器左上角的右箭头按钮;

1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 driver.get("https://www.python.org/")
 9 sleep(2)
10 # 返回上一级
11 driver.back()
12 sleep(2)
13 # 返回下一级
14 driver.forward()

四、页面刷新

有时候页面操作后,数据可能没及时同步,需要重新刷新web;所以做自动化需要模拟刷新web的操作

1 # coding:utf-8
2 from selenium import webdriver
3 from time import sleep
4 
5 driver = webdriver.Chrome()
6 driver.get("https://www.baidu.com")
7 sleep(2)
8 # 刷新web页面
9 driver.refresh()

五、设置窗口大小

设置浏览器窗口大小,如设置窗口分辨率为500*800,也可以最大最小化窗口。

1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 # 设置窗口分辨率为500*800
 9 driver.set_window_size(500, 800)
10 sleep(2)
11 # 窗口最大化
12 driver.maximize_window()
13 sleep(2)
14 # 窗口最小化
15 driver.minimize_window()

六、截屏

1. 打开网站之后,可以对屏幕截屏

2. 截屏后设置制定的保存路径+文件名称+后缀

1 # coding:utf-8
2 from selenium import webdriver
3 from time import sleep
4 
5 driver = webdriver.Chrome()
6 driver.get("https://www.baidu.com")
7 sleep(2)
8 # 截屏
9 driver.get_screenshot_as_file(r"D:\\picture.png")

七、在新窗口打开链接

1. 打开网页后,也可以重新建立一个窗口;

2. 在新窗口打开链接;

1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 # 在新窗口打开链接
 9 newWin = "window.open('https://www.baidu.com')"
10 driver.execute_script(newWin)

八、切换到新窗口

1. 当网页中有过个窗口,也可以通过切换句柄操作;

2. 通过句柄操控不同的窗口;

1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 newWin = "window.open('https://www.baidu.com')"
 9 driver.execute_script(newWin)
10 # 句柄切换到新窗口
11 handles = driver.window_handles
12 # driver.switch_to_window(handles[-1])# -1为最新打开的窗口
13 driver.switch_to_window(handles[0])# 0为第一个打开的窗口
14 driver.find_element_by_id("kw").send_keys("python")

九、退出

1. 退出有两种方式,一种是close,另外一种是quit;

2. close用于关闭当前窗口,当打开的窗口较多时,就可以用close关闭部分窗口; 

3. quit用于结束进程,关闭所有的窗口,即关闭当前浏览器进程;

4. 最后结束测试,要用quit。quit可以回收c盘的临时文件。

1 # coding:utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 
 5 driver = webdriver.Chrome()
 6 driver.get("https://www.baidu.com")
 7 sleep(2)
 8 # 关闭当前窗口
 9 # driver.close()
10 # 关闭当前浏览器进程
11 driver.quit()