【UI自动化测试】6_web自动化测试 _浏览器操作

文章目录

  • 一、浏览器操作
    • [1.1 浏览器操作](#1.1 浏览器操作)
    • [1.2 示例代码](#1.2 示例代码)
  • 二、浏览器操作-案例
    • [2.1 示例1-最大化、位置、大小、前进后退](#2.1 示例1-最大化、位置、大小、前进后退)
    • [2.2 示例2-refresh、close、quit、title、current_rul](#2.2 示例2-refresh、close、quit、title、current_rul)

一、浏览器操作

1、问题:

  • 脚本启动浏览器窗口大小默认不是全屏?
  • 如何刷新页面?

答:通过调用Selenium的API来实现浏览器的操作

1.1 浏览器操作

python 复制代码
# 设置浏览器显示范围
driver.maximize_window() 				窗口最大化 --> 模拟浏览器最大化按钮
driver.set_window_size(width, height) 	设置窗口大小 --> 设置浏览器宽、 高(像素点)
driver.set_window_position(x, y) 		设置窗口位置 --> 设置浏览器位置


# 浏览器显示页面操作
driver.back() 				后退 --> 模拟浏览器后退按钮(浏览器不能开新窗口)
driver.forward() 			前进 --> 模拟浏览器前进按钮
driver.refresh()            刷新 --> 模拟浏览器F5刷新

当前窗口:创建驱动时第一个打开的窗口,对于当前窗口的元素一般都可以直接定位和操作,如果弹出新的窗口,对于新的窗口元素是不能直接进行操作,需要学习后续的窗口切换。

python 复制代码
# 浏览器关闭操作
driver.close()               关闭当前窗口 --> 模拟点击浏览器关闭按钮
driver.quit() 	             关闭浏览器 --> 关闭所有程序启动的窗口


# 获取浏览器信息
driver.title                 获取标题(判断窗口的唯一标识。利用title切换不同的窗口)
driver.current_url           获取当前页面URL

1.2 示例代码

python 复制代码
# 最大化浏览器
driver.maximize_window()

# 刷新,应用场景:cookie使用到
driver.refresh()

# 后退
driver.back()

# 前进
driver.forward()

# 设置浏览器大小
driver.set_window_size(300,300)

# 设置浏览器位置
driver.set_window_position(300,200)

# 关闭浏览器单个窗口
driver.close()

# 关闭浏览器所有窗口
driver.quit()


# 应用场景:一般为判断上步操作是否执行成功
# 获取title,driver.title没有括号
title = driver.title
# 获取当前页面url,driver.current_url没有括号
url = driver.current_url

二、浏览器操作-案例

2.1 示例1-最大化、位置、大小、前进后退

python 复制代码
# 导包
from selenium import webdriver
from time import sleep

# 获取浏览器驱动对象
driver = webdriver.Chrome()
# 打开url
url = r"https://news.baidu.com/"
driver.get(url)

# 将浏览器 最大化
driver.maximize_window()
# 暂停2秒
sleep(2)
# 设置固定大小 300,200
driver.set_window_size(300, 200)
# 暂停2秒
sleep(2)
# 移动浏览器窗口位置 x:320,y:150
driver.set_window_position(320, 150)
# 暂停2秒
sleep(2)
# 最大化
driver.maximize_window()
# 点击 访问百度新闻中的润物无声文章  注意:要演示后退功能,必须先执行打开新的网站
driver.find_element_by_partial_link_text("润物无声").click()  # 不能开新窗口,不然后退无效
# 暂停2秒
sleep(2)
# 执行后退 --->
driver.back()
# 暂停2秒
sleep(2)
# 执行前进 -->百度新闻 注意:前进必须放到后退操后执行。
driver.forward()
# 暂停 2
sleep(2)
# 关闭驱动对象
driver.quit()

2.2 示例2-refresh、close、quit、title、current_rul

python 复制代码
# 导包
from selenium import webdriver
from time import sleep

# 获取浏览器驱动对象
driver = webdriver.Chrome()
# 将浏览器 最大化
driver.maximize_window()
# 打开url
url = r"https://news.baidu.com/"
driver.get(url)

#  目的:刷新完成--清空
driver.find_element_by_css_selector("#ww").send_keys("我爱你")
# 暂停2秒
sleep(2)
# 刷新
driver.refresh()
# 获取title
title = driver.title
print("当前页面title为:", title)
# 获取当前url
current_rul = driver.current_url
print("当前页面url地址为:", current_rul)

# 点击 润物无声网页 打开新窗口
driver.find_element_by_partial_link_text("润物无声").click()
# 暂停 3秒
sleep(3)
# 关闭主窗口,窗口默认打开页面的窗口
driver.close()
# 暂停 2
sleep(2)
# 关闭驱动对象
driver.quit()

当前页面title为: 百度新闻------海量中文资讯平台

当前页面url地址为: https://news.baidu.com/

相关推荐
程序员黑豆5 分钟前
鸿蒙应用开发之@Styles 装饰器:定义可复用的组件样式
前端·harmonyos
程序员码歌7 分钟前
我全程用 AI开发了一款微信小游戏,上线了
android·前端·游戏开发
咩咩啃树皮8 分钟前
第52篇:前端工程化完整体系精讲——Vite构建、模块化、打包原理、规范体系、面试终极通关
前端·面试·职场和发展
妙码生花9 分钟前
从 PHP 到 AI + Golang,程序员自救转型手记(四十八):菜单规则管理实现
前端·后端·ai编程
FogLetter11 分钟前
当JavaScript学会“分身术”:异步编程的进化简史
前端·javascript·面试
hunterandroid31 分钟前
[鸿蒙从零到一] HarmonyOS 分布式能力与设备协同实战:从发现设备到任务闭环
前端
lichenyang4531 小时前
从图片创作到本地可复现的 AIGC 全栈闭环:AIGC Creative Studio 实践复盘
前端·后端
牧艺1 小时前
别急着 Vibe Coding:AI 三小时写完需求后,我为什么宁愿多花一天
前端·agent·vibecoding
java1234_小锋1 小时前
Vue3+Vite简介以及构建第一个HelloWorld实例
前端·javascript·vue.js·vite
前进的搬砖er1 小时前
1.cesium 的基础知识篇
前端