Python + Selenium WebDriver API之浏览器相关操作

Python + Selenium WebDriver API之浏览器相关操作

01 浏览器窗口大小的控制

关于浏览器的窗口的调整,无非两种,指定的窗口大小和浏览器的最大化状态。使用到的方法分别是set_window_size(x, y)maximize_window()

import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
time.sleep(1)
browser.maximize_window() # 设置浏览器为最大化状态
time.sleep(1)
browser.set_window_size(800, 600) # 设置浏览器窗口为指定宽高像素值

02 控制浏览器前进、后退

浏览器一般都会给我们提供后退、前进按钮,以方便查看之前的页面,或在回退后再退到当前浏览的页面。

浏览器页面的后退,用到的方法是back(),前进用的方法是forward()

import time
from selenium import webdriver
browser = webdriver.Chrome()

first_page = 'https://www.126.com/'
print(f'now access {first_page}')
browser.get(first_page)
time.sleep(1)

second_page = 'https://www.12306.cn/'
print(f'now access {second_page}')
browser.get(second_page)
time.sleep(1)

print(f'back to {first_page}')
browser.back() # 执行浏览器页面的后退动作
time.sleep(2)

print(f'forward to {second_page}')
browser.forward() # 执行浏览器页面的前进动作
time.sleep(5)

browser.quit()

03 浏览器刷新

若我们想模拟浏览器页面的刷新(F5),可以直接通过webdriver的refresh()方法实现。

import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
time.sleep(2)
browser.refresh() # 刷新当前页面

04 窗口截图

由于自动化测试用例是由程序执行的,有时候打印的错误信息不够直观。若在脚本执行出错时能够对当前窗口进行截图保存,那么通过截图就可以非常直观地看到脚本出错的原因。WebDriver提供了用于窗口截图的方法save_screenshot(),可以截取当前窗口。

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")

# 截取当前窗口,指定截图图片的保存位置
browser.save_screenshot('./baidu_img.png')

这里在保存图片时,后缀名建议使用png格式。

05 关闭浏览器

关闭浏览器,我们上面已经用到了quit()方法,其利用就是退出相关的驱动程序和关闭所有窗口。除此之外,WebDriver还提供了close()方法,用来关闭当前窗口,所以close()方法通常用于打开了多个窗口的场景中。

在长期执行自动化测试环境中,肯定存在一些因异常导致测试中断的场景,这些场景中不仅浏览器的窗口没有关掉,连其进程都会存留在系统中,一段时间后肯定会堆积大量的无用进程占据资源。

这时,我们就需要手动来清除WebDriver的进程,如下这条命令可以遍历出系统中所有存在ChromeDriver的进程,然后逐一杀除。

taskkill /f /t /im chromedriver.exe

文章作者: &娴敲棋子&
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 &娴敲棋子& !
评论
  目录