Selenium系列(二)对浏览器的常用操作
1、常用操作
介绍几种对浏览器常用的操作:
- 最大化、最小化浏览器
- 控制、获取浏览器大小
- 获取当前标签页title、url
- 前进、后退、刷新
- 执行js语句
- 打开、关闭新的标签页
- 滚动页面
- …
2、代码实践
最大化、最小化浏览器
from selenium import webdriver
import time# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 最大化浏览器
driver.maximize_window()
time.sleep(2)
# 最小化浏览器
driver.minimize_window()
time.sleep(2)
# 退出浏览器
driver.quit()
控制、获取浏览器大小
from selenium import webdriver
import time# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 获取浏览器大小
size = driver.get_window_size()
print(f"浏览器大小为:{size}")
# 设置浏览器大小
driver.set_window_size(1200, 1200)
time.sleep(2)
# 退出浏览器
driver.quit()
执行结果为:
浏览器大小为:{'width': 1200, 'height': 757}
获取当前标签页title、url
from selenium import webdriver
import time# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 获取当前标签页的title
print(f"标签页title: {driver.title}")
# 获取当前页的url
print(f"标签页url: {driver.current_url}")
# 获取当前浏览器的名称
print(f"标签页name: {driver.name}")
# 获取当前页的html
print(f"标签页html: {driver.page_source}")
# 退出浏览器
driver.quit()
执行结果为:
标签页title: 百度一下,你就知道
标签页url: https://www.baidu.com/
标签页name: chrome
标签页html: <html>...</html>
前进、后退、刷新
from selenium import webdriver
import time# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 后退
driver.back()
time.sleep(2)
# 前进
driver.forward()
time.sleep(2)
# 刷新
driver.refresh()
time.sleep(2)
# 退出浏览器
driver.quit()
执行js语句
# 同步执行js
driver.execute_script('console.log(222)')
# 异步执行js
driver.execute_async_script('alert(333)')
执行js语句还可以做很多其他事情,比如打开新的标签页、滚动页面等,下面简单介绍下:
打开、关闭新的标签页
- 打开标签页只能通过
js
来操作 - 可以通过
句柄
来切换标签页
from selenium import webdriver
import time# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
time.sleep(3)
# 打开新的标签页
js = "window.open('http://www.douban.com')"
driver.execute_script(js)
time.sleep(3)
# 获取当前标签页的句柄
print(driver.current_window_handle)
# 获取所有标签页的句柄
handles = driver.window_handles
print(handles)
# 切换标签页
driver.switch_to.window(handles[0])
time.sleep(3)
# 退出浏览器
driver.quit()
执行结果:
CDwindow-CD338EAC7549A3BCB337D9160779CA57
['CDwindow-CD338EAC7549A3BCB337D9160779CA57', 'CDwindow-BFDC2CC142D306ACB2E9363D486FBF41']
滚动页面
from selenium import webdriver
import time
import random# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.douban.com")
# 滚动页面
js = f"var q=document.documentElement.scrollTop={random.randint(100, 999)}"
driver.execute_script(js)
time.sleep(2)
# 再次滚动
js = f"var q=document.documentElement.scrollTop={random.randint(100, 999)}"
driver.execute_script(js)
time.sleep(2)# 退出浏览器
driver.quit()
参考文章:https://www.cnblogs.com/poloyy/p/12574439.html
Selenium系列(二)对浏览器的常用操作相关推荐
- MongoDB实战系列之二:MongoDB的常用操作
#以服务方式启动mongodb,要求验证 /elain/apps/mongodb/bin/mongod --fork --port 27001 --auth --dbpath /elain/data/ ...
- python对浏览器的常用操作_python+selenium(4)--浏览器操作的基本方法
关于自动化测试其实很多时候都是为了节省时间做一些大批量的复用性工作,在正式学习自动化脚本编写之前,这里引用陈建忠老师的博客内容,希望大家能了解一下关于什么是自动化的知识,在日后做自动化测试的过程中会根 ...
- python对浏览器的常用操作有哪些_Python Selenium中对象常用操作方法
一.webdriver 提供了一系列的对象定位方法,常用的有以下几种:id定位:find_element_by_id() name定位:find_element_by_name() class定位:f ...
- Au入门系列之二:编辑器与常用操作
编辑器面板 编辑器面板是Adobe Audition处理音频时最主要的工作空间. Au菜单:窗口/编辑器 快捷键:Alt/Opt + 1 在Au中,编辑器面板有两种视图形式:波形编辑器和多轨编辑器.可 ...
- python对浏览器的常用操作_Selenium元素的常用操作方法分析
本文实例讲述了Selenium元素的常用操作方法.分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样 ...
- python对浏览器的常用操作_selenium+python基本操作(02)
前言 前一章节已经完成环境搭建,下面简单介绍下对浏览器的基本操作,让大家先了解一些简单的操作.这节主要介绍浏览器打开.刷新.前进.后退.截图.退出等功能. 1)打开浏览器 from selenium ...
- SpringBoot 精通系列-SpringBoot整合Redis的常用操作
导语 在之前的博客中介绍过关于Memcache的使用,这篇文章中主要介绍关于Redis的有关概念及如何与SpringBoot整合使用. 首先Redis是目前使用最为广泛的缓存中间件,相比较Me ...
- glance系列二:glance部署及操作
阅读目录 一 简单架构图示参考 二 部署glance 三 验证 一 简单架构图示参考 二 部署glance 创建脚本 为了不写一长串的用户信息,可以把他们定义成脚本的方式 admin-openrc e ...
- HDFS 系列二:HFDS 命令行操作
文章目录 2. HFDS 命令行操作 2.1 基本语法 2.2 参数大全 2.3 常用命令实操 2.3.1 -help:输出这个命令参数 2.3.2 -ls: 显示目录信息 2.3.3 -mkdir: ...
最新文章
- SecureRandom
- SQL Server2008(一)简介
- shell训练营Day31
- 第二阶段冲刺-个人总结09
- fastdfs 一个group内实现按照不同的项目,指定路径存储.
- CF1540B Tree Array(期望,dp)
- spring学习(44):p名称空间注入
- 微机个人笔记-存储单元编址
- 曝李国庆抢走当当公章发《告当当全体员工书》,当当网:已报警,公章作废...
- 苹果发布iOS 13.2测试版 iPhone 11拍照更牛了
- ATT ECOMP与Open-O相互掣肘
- 12、SpringBoot------activeMq的简单使用
- 乐檬:我们和fiil主题词相同是撞车!汪峰信吗?
- 网易云爬虫系列 - 批量下载专辑图片
- SWMM模型代码LID(Low Impact Development)模块分析
- 学校教材管理系统html,学校教材管理系统
- linux打印信息命令行,从 Linux 命令行进行打印
- wps页眉怎么设置不同页码_WPS中怎么给单独一页设置页眉?
- Zeppelin求学之路(3)—Zeppelin基本模块介绍和Paragraph源码深入了解以及Note,NoteBook 简介,
- jdbc 批量执行sql
热门文章
- 从原来的系统中找回网络连接
- Jetson 加装 USB 声卡后设置为默认声卡
- python语言可以处理数据文件吗_Python语言读取Marc后处理文件基础知识.pdf
- The meaning of path integral formulation
- Android抓包-Charles弱网环境模拟
- 《羊了个羊》服务器2天崩3次?去中心化云会成为下一代网络基础设施吗?
- Android自定义记账软键盘(仿鲨鱼记账的记账功能)
- vrops vRealize Operations Manager 8云管平台部署与配置
- 使用Aruino Ethernet使ESP32具有以太网通讯能力
- 驱动开发 --- 串口