Selenium - 浏览器操作
Selenium - 浏览器操作
获取浏览器信息
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 获取当前浏览器名称
print(driver.name)
# 获取当前网页的 URL 地址
print(driver.current_url)
# 获取当前网页的标题
print(driver.title)
# 获取当前网页的源代码
print(driver.page_source)
前进/后退/刷新
from selenium import webdriver
# 浏览器实例化
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 进行百度搜索
driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
driver.find_element_by_xpath("//input[@id='su']").click()
# 后退
driver.back()
# 前进
driver.forward()
# 刷新
driver.refresh()
窗口大小设置
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 把浏览器窗口最大化
driver.maximize_window()
# 把浏览器窗口最小化
driver.minimize_window()
# 设置浏览器窗口大小,长、宽作为参数传递进去,单位:像素
driver.set_window_size(1366, 768)
# 获取浏览器大小
size = driver.get_window_size()
print(size)
窗口截图
使用函数
get_screenshot_as_file()from selenium import webdriver driver = webdriver.Chrome()
driver.get("http://www.baidu.com") # 保存为本地png图片
# 图片后缀最好为.png,如果是其他的执行的时候会有警告,但不会报错
driver.get_screenshot_as_file("D:\\baidu.png")
使用函数
save_screenshot()from selenium import webdriver driver = webdriver.Chrome()
driver.get("http://www.baidu.com") # 对当前浏览器打开界面进行截图
driver.save_screenshot("D:\\baidu.png")
文件上传
- 上传有两种情况:
- input标签:如果上传组件是一个
input标签,那么定位到元素后,直接使用send_keys()方法就可以上传; - input标签:如果上传组
非input标签,则需要借助第三方工具:第三方库pywin32、第三方工具pyautogui;
- input标签:如果上传组件是一个
input标签
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 定位上传文件元素
input_file = driver.find_element_by_id("xxx")
# 上传文件
input_file.send_keys(r"D:\learn\xx.txt")
非input标签
TODO:还未遇到这种场景,待学习
标签页切换
在页面中点击某个链接之后,可能就会打开一个新的标签页,Chromedriver驱动是不会主动帮我们去切换。多标签页出现后,如果要做下一步操作,需要先切换浏览器标签页。
# 获取全部窗口句柄
handles = driver.window_handles # 获取当前窗口句柄
handle = driver.current_window_handle # 通过句柄切换窗口
driver.switch_to.window(handle) # 打开新的标签页
js = 'window.open("https://www.baidu.com")'
driver.execute_script(js)
实战操作
import time
from selenium import webdriver # 启动Chromedriver,并与Chromedriver开启会话
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com") # 点击新闻,新建一个tab标签页
driver.find_element_by_xpath("//div[@id='s-top-left']/a[1]").click()
time.sleep(2) # 获取当前标签页句柄
win = driver.current_window_handle
print('当前标签页:', win) # 获取当前所有标签页句柄
# 返回的是一个列表,按照标签页打开的顺序
wins = driver.window_handles
print('所有标签页1:', wins) # 切换到第1个标签页
driver.switch_to.window(wins[0])
time.sleep(2) # 打开新的标签页
js = 'window.open("https://www.baidu.com")'
driver.execute_script(js)
time.sleep(2) # 再次获取当前所有标签页句柄
wins = driver.window_handles
print('所有标签页2:', wins) # 关闭当前标签页
driver.close()
# 关闭浏览器,kill掉chromedriver进程
driver.quit()
封装窗口切换,实现切换到下一个窗口和上一个窗口的功能
driver = webdriver.Chrome() def window_forward(driver):
"""自动切换到当前窗口的下一个窗口"""
a = driver.window_handles
b = driver.current_window_handle
k = a.index(b)
driver.switch_to.window(a[k+1]) def window_back(driver):
"""自动切换到当前窗口的上一个窗口"""
a = driver.window_handles
b = driver.current_window_handle
k = a.index(b)
driver.switch_to.window(a[k - 1])
小技巧:
list.index(element)用来获取元素在list中的索引位置,如果元素不存在会抛出异常。
Selenium - 浏览器操作的更多相关文章
- 自动化测试基础篇--Selenium浏览器操作
摘自https://www.cnblogs.com/sanzangTst/p/7462056.html 学习 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法 ...
- Java Selenium - 浏览器操作
浏览器主要操作方法来自接口 org.openqa.selenium.WebDriver , 实现于org.openqa.selenium.remote.RemoteWebDriver这个类,然后不同浏 ...
- selenium浏览器操作
在元素定位中xpath使用的还算比较多,介绍一下常见的firfox和chrome浏览器插件安装 一.浏览器定位工具安装 1.firfox firfox比较简单,主要浏览器自带的定位功能也比较强大国内也 ...
- selenium webdriver(1)---浏览器操作
启动浏览器 如何启动浏览器已在上篇文章中说明,这里还是以chrome为例,firefox.IE启动方式相同. //启动浏览器 import org.openqa.selenium.WebDriver; ...
- 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS
第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...
- selenium webdriver操作各浏览器
描述 本文主要是针对Chrome 62 , firefox57 ,和IE11 三个版本的操作.相关的driver .可点击以下链接.所有的driver 建议放在浏览器的目录下,本文中所有的driver ...
- 孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1
孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1 (完整学习过程屏幕记录视频地址在文末) 要模拟进行浏览器操作,只用requests是不行的,因此今天了解到有专门的解决方案 ...
- selenium 浏览器基础操作(Python)
想要开始测试,首先要清楚测试什么浏览器.如何为浏览器安装驱动,前面已经聊过. 其次要清楚如何打开浏览器,这一点,在前面的代码中,也体现过,但是并未深究.下面就来聊一聊对浏览器操作的那些事儿. from ...
- Selenium常用API的使用java语言之7-控制浏览器操作
(六)控制浏览器操作 1.控制浏览器窗口大小 有时候我们希望能以某种浏览器尺寸找开,访问的页面在这种尺寸下运行.例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估 ...
- selenium元素和浏览器操作
click和clear from selenium.webdriver.support.wait import WebDriverWait import time browser = webdrive ...
随机推荐
- Spring--案例:数据源对象管理
案例:数据源对象管理 对于已经学过数据库的我来说,这看起来就像是连接数据库的操作: 就像javaweb项目里面的db.properties文件的使用一样,我们需要先导入一个包,(我用的是Maven项目 ...
- Javaweb基础复习------Filter相关应用+登录验证案例的使用
Filter(过滤器) 基本步骤: 1.定义类,实现Filter接口,并重写其所有方法 2.配置Filter拦截资源的路径,在类上定义2 WebFilter注解(WebFilter配置的路径,是拦截资 ...
- RBAC学习(一)
0.前提 :用户只有一个直属部门,但角色可以关联多个部门 有一种情况就不太适用:比如说地区经理是一个角色,张三是北京市地区经理,他在组织架构中的直属部门是华北大区,然后一个黑龙江的销售李四提一个折扣申 ...
- 从零开始,开启属于你的 RTE 漫游之旅!丨漫游指南 x 即将启航
什么是「开发者漫游指南」? 「开发者漫游指南」邀请热爱前端开发.关心音视频领域发展.希望进入音视频行业.乐于和大家一起交流成长的小伙伴,通过「开发者漫游指南」与社区共同成长,帮助更多的开发者在实时音视 ...
- 2022年8月学科能力综合测试(TACA)试题解答 Mathemaitca练习
目录 试题地址 1 4 5 10 13 你让我猜我肯定这么猜 试题地址 https://k.sina.com.cn/article_2897328623_acb1b9ef019011qen.html ...
- Windows 11 正式版(2021/10/19更新)
Windows 11 (business editions), version 21H2 (updated October 2021) (x64) - DVD (Chinese-Simplified) ...
- 一款基于js/jquery标签拖拽排序小组件
这是一个基于jQuery写的拖拽小组件,写了大概两三天,刚好可以在前端方面练练手.拖拽原理是使用绝对定位+鼠标元素位置实现. GitHub地址:https://water1996.github.io/ ...
- Docke 使用与详解1 --Tomcat
一.Docker容器案例使用 --Tomcat安装与使用 1.Tomcat 安装 --docker tomcat镜像官网 1>使用docker pull tomcat拉取镜像,默认拉取最新版本: ...
- odoo 开发入门教程系列-准备一些操作(Action)?
准备一些操作(Action)? 到目前为止,我们主要通过声明字段和视图来构建模块.在任何真实的业务场景中,我们都希望将一些业务逻辑链接到操作按钮.在我们的房地产示例中,我们希望能够: 取消或将房产设置 ...
- 二进制安装Kubernetes(k8s) v1.24.1 IPv4/IPv6双栈 --- Ubuntu版
二进制安装Kubernetes(k8s) v1.24.1 IPv4/IPv6双栈 --- Ubuntu版本 Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安 ...