前言
一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210415
【Selenium核心技术篇】包含以下内容:
- Selenium实现元素定位(8种)
- Selenium WebDriver
- Selenium WebElement
- Selenium操作from表单
- Selenium操作checkbox和radiobutton
- Selenium操作下拉列表
- Selenium处理弹框
- Selenium三种等待方式
- Selenium等待条件
- Selenium鼠标和键盘事件
- Selenium执行JavaScript脚本
- Selenium屏幕截图
- Selenium之frame的切入和切出
Selenium 提供的屏幕截屏方法:
序号 | 方法/属性 | 描述 |
---|---|---|
1 | save_screenshot(filename) | 截取当前屏幕截图,并保存为指定文件,filename 为指定的保存路径或图片文件名 |
2 | get_screenshot_as_base64() | 获取当前屏幕截图 base64 编码字符串 |
3 | get_screenshot_as_file(filename) | 获取当前截图,使用完整的路径 |
4 | get_screenshot_as_png() | 获取当前截图的二进制文件数据 |
实操
from selenium import webdriver
from time import sleep,strftime,localtime,time
import os
class testcase(object):
def __init__(self):
self.driver = webdriver.Chrome() # 打开浏览器
self.driver.get('http://www.baidu.com') # 跳转至测试页面
self.driver.maximize_window()
def test_screenshot(self):
self.driver.find_element_by_id('kw').send_keys('留白') # 定位输入框并输入内容
self.driver.find_element_by_id('su').click()
sleep(2)
# 截图保存在当前路径,名称自定义
self.driver.save_screenshot('baidu留白.png')
self.driver.quit()
def test_screenshot1(self):
self.driver.find_element_by_id('kw').send_keys('selenium')
self.driver.find_element_by_id('su').click()
sleep(2)
# 使用当前时间作为文件名
st = strftime('%Y-%m-%d-%H-%M-%S',localtime(time()))
file_name = st + '.png'
self.driver.save_screenshot(file_name)
self.driver.quit()
def test_screenshot2(self):
self.driver.find_element_by_id('kw').send_keys('小慌慌的博客')
self.driver.find_element_by_id('su').click()
sleep(2)
# 截图保存到具体目录下
st = strftime('%Y-%m-%d-%H-%M-%S',localtime(time()))
file_name = st + '.png'
path = os.path.abspath('SeleniumScreens') #这种方法是要手动创建该目录,否则找不到该路径存放图片
print(path) # 打印图片路径
file_path = path + '/' + file_name
self.driver.get_screenshot_as_file(file_path)
self.driver.quit()
# 推荐使用
def test_screenshot3(self):
self.driver.find_element_by_id('kw').send_keys('小慌慌的博客')
self.driver.find_element_by_id('su').click()
sleep(2)
# 设置截图文件保存的路径
path = '/Users/PycharmProjects_py3/webAotuTestDemo/selenium学习笔记/'
path = os.path.join(path, 'SeleniumScreens')
if not os.path.exists(path):
os.mkdir(path)
# 设置要截图的文件名
file_name = strftime('%Y_%m_%d_%H_%M_%S', localtime()) + '.png'
path = os.path.join(path, file_name)
self.driver.get_screenshot_as_file(path)
print(path)
self.driver.quit()
if __name__ == '__main__':
case = testcase()
# case.test_screenshot()
# case.test_screenshot1()
# case.test_screenshot2()
case.test_screenshot3()