1、获取驱动
1.1 查看版本号
1.2 驱动下载
下载驱动https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/?form=MA13LH
进入页面后选择对应版本下载
1.3 驱动配置
将解压后的浏览器驱动放在python同级目录
2、操作浏览器
2.1 常用操作
from selenium import webdriver
# 第一种:当驱动配置在python同级目录时,可以不传参直接获取driver
driver = webdriver.Edge()
# 第二种:当驱动不配置在python同级目录时,需要传入驱动放置目录
# driver = webdriver.Edge("D:\openApi_project\驱动放置目录")
#打开网址
url = "https://m.fj.189.cn/"
driver.get(url)
#网页刷新
driver.refresh()
# 前进
driver.forward()
# 后退
driver.back()
# 窗口最大化
driver.maximize_window()
# 窗口最小化
driver.minimize_window()
# 关闭标签页
driver.close()
# 关闭浏览器(退出浏览器的进程)
driver.quit()
# 全屏
driver.fullscreen_window()
# 设置浏览器的大小
driver.set_window_size(100, 500)
# 设置浏览器的位置
driver.set_window_position(100, 500)
# 同时设置浏览器的大小和位置
driver.set_window_rect(200, 400, 200, 600)
# 页面加载时间设置
driver.set_page_load_timeout(3)
2.2 截屏操作
#第一种:get_screenshot_as_base64()整个函数,获取当前屏幕页面截图。我们通过代码编写打开百度页面,然后进行进行通过base64进行截图,截图后再次进行转换成图片保存下来
from selenium import webdriver
import base64
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通过base64进行保存图片
x = driver.get_screenshot_as_base64()
image = base64.b64decode(x)
file = open('1.jpg', "wb")
file.write(image)
# 第二种:save_screenshot(filename)是属于Selenium自带的截图函数,其中filename表示图片名称,道理一样,直接打开百度网页进行保存。
# coding:utf-8
driver.get('https://www.baidu.com/')
# 保存图片到本地
driver.save_screenshot('1.png')
# 第三种:get_screenshot_as_file(filename)获取截图信息,其中filename表示图片名称,这里需要注意的是,图片信息只能保存为png格式的,其他的格式,代码会出现报错。
driver.get('https://www.baidu.com/')
# 截图保存在本地
driver.get_screenshot_as_file('1.png')
# 第四种:get_screenshot_as_png() 通过二进制的方式进行保存图片。
driver.get('https://www.baidu.com/')
# 截图保存在本地
x = driver.get_screenshot_as_png()
# 将二进制保存成图片形式
file = open('1.png', "wb")
file.write(x)
# 截图长图:将浏览器显示的内容全部截图下来
# 需要将浏览器设置成无页面模式,因为只有无页面形式才可以截全图
opt = webdriver.ChromeOptions()
opt.headless = True # 把Chrome设置成可视化无界面模式
driver = webdriver.Chrome(options=opt) # 创建Chrome无界面对象
driver.get('http://www.51testing.com/html/news.html')
time.sleep(2)
# js获取页面的宽高
width = driver.execute_script("return document.documentElement.scrollWidth")
height = driver.execute_script("return document.documentElement.scrollHeight")
# 将浏览器的宽高设置成刚刚获取的宽高
driver.set_window_size(width, height)
time.sleep(3)
driver.save_screenshot('22.png')
3、句柄
3.1 无头模式
# 无头模式
from selenium import webdriver
options = webdriver.ChromeOptions()
# 第一种
options.add_argument("-headless")
# 第二种
# options.headless = True
driver = webdriver.Chrome(options=options)
3.2 修改窗口大小
from selenium import webdriver
option = webdriver.ChromeOptions()
# option.add_argument('--headless')
# 修改窗口大小
mobile_emulation = {"deviceMetrics": {"width": 327, "height": 844, "pixelRatio": 1.0}}
option.add_experimental_option("mobileEmulation", mobile_emulation)
# driver = webdriver.Edge(options=option)
driver = webdriver.Chrome(options=option)
4、F12
4.1 定位元素
4.2 ctrl+f 查询语句定位到哪些元素
4.3 模拟弱网测试
4.4 切换仿真设备,常用于移动端测试
4.5 控制台执行js语句