首页 > 其他分享 >selenium之浏览器操作和句柄、常见f12操作

selenium之浏览器操作和句柄、常见f12操作

时间:2024-04-16 10:11:41浏览次数:31  
标签:webdriver 截图 浏览器 screenshot get 句柄 driver f12 selenium

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语句

标签:webdriver,截图,浏览器,screenshot,get,句柄,driver,f12,selenium
From: https://www.cnblogs.com/PengHwei/p/18136670

相关文章

  • csharp selenium HtmlAgilityPack 爬虫 网页解析 微信公众号
    Wechat.Crawler/App/App.csproj<ProjectSdk="Microsoft.NET.Sdk"><ItemGroup><ProjectReferenceInclude="..\Blog\Blog.csproj"/></ItemGroup><ItemGroup><NoneUpdate="nlog.config&......
  • CF1253F Cheap Robot 题解
    首先建立一个超级点\(S\),对于每一个可以充电的点\(u\)都建立一条从\(S\tou\)的边权为\(0\)的有向边。从这个超级点\(S\)开始跑一遍最短路算法,就可以得到每一个点\(u\)至少需要花费多少的电量才可以走到一个充电点。令\(D_i\)表示\(i\)号点最少花费多少可以到一个......
  • Windows窗口句柄监控
    我说想要一段实现了当发现windows桌面上冒出新窗口就截图保存的功能,AI写的,测了下能用。#pipinstallpyautoguipywin32importtimeimportwin32guiimportpyautoguidefcapture_window_screenshot(hwnd):"""截取截图"""screenshot=pyautogui.screenshot()......
  • selenium之窗口切换
    selenium之窗口切换1、弹窗1.1Alterdriver.find_element(By.ID,"alert").click()#窗口切换并获取textprint(driver.switch_to.alert.text)#窗口切换并点击确定driver.switch_to.alert.accept()driver.find_element(By.ID,"alert").click()#窗口切换并点击取消d......
  • SeleniumBase 制作WEB用户使用导览,并导出 JS-使用笔记(三)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(三)SeleniumBase制作WEB用户使用导览,并导出JSSeleniumBase包含强大的JS代码生成器,用于将Python转换为JavaScript,而制作用户导览,就是其中的应用之一,用户导览能将SaaS产品采用率提高10倍或更多目录创建导览......
  • selenium之定位方式和元素操作
    selenium之定位方式和元素操作八大定位方式导包:fromselenium.webdriver.common.byimportBy1、标签id属性的定位ele=driver.find_element(by=By.ID,value="search-input")2、标签name属性的定位ele=driver.find_element(by="name",value="search-input")3......
  • selenium之鼠标键盘操作
    selenium之鼠标键盘操作一、鼠标1、导包:fromselenium.webdriver.common.action_chainsimportActionChains2、常规操作2.1左键单击search_ele=WebDriverWait(driver,15,0.5).until(EC.visibility_of_element_located(("id","search-input")))search_ele.send_k......
  • Selenium 笔记
    相关资料Selenium官网Selenium文档SeleniumPython接口文档如果要查看其他语言的Selenium接口文档,见下载SeleniumW3CWebDriver规范Web驱动器可以访问Selenium官方Web驱动器生态查看各主流浏览器的Web驱动器下载Chrome也包含了ChromeDriver文档115以后版本115以......
  • 使用docker部署基于selenium和chrome-headless的爬虫
    使用docker部署基于selenium和chrome-headless的爬虫无论是测试还是爬虫的一些工作,有时候都会用到selenium去对chrome执行自动化操作,这里介绍一下如何使用docker快捷方便的部署相关应用。1.selenium+chrome镜像通过dockersearchselenium我们发现,有一个docker镜像叫做sele......
  • selenium-浏览器复用-Invalid Status code=403 text=Forbidden
    问题:selenium-java版本为4.1.4、4.8.2+Java8运行时报InvalidStatuscode=403text=Forbidden 运行代码:publicclassRemoteTest{publicChromeOptionsoptions;publicWebDriverdriver;@TestpublicvoidremoteTest(){options=newC......